Protocol Selection Guide¶
Choose the right streaming protocol for your use case.
Decision Tree¶
Step 1: Network Available?¶
No Wi-Fi Available? → Use Bluetooth LE
Wi-Fi Available? → Continue to Step 2
Step 2: Performance Requirements¶
Need Maximum Performance? → Use gRPC (iOS 18+) or QUIC/HTTP3 (iOS 15+)
Standard Performance OK? → Continue to Step 3
Step 3: Use Case¶
Multiple Subscribers Needed? → Use MQTT
Simple Integration / Webhooks? → Use HTTP/REST
Robotics Research / Foxglove? → Use MCAP Stream
General Purpose? → Use WebSocket (default)
Detailed Recommendations¶
Use WebSocket When:¶
- ✅ First-time users
- ✅ General purpose streaming
- ✅ Need bidirectional communication
- ✅ Want simple setup
- ✅ Standard performance is sufficient
Example: Most research applications, development, testing
Use gRPC When:¶
- ✅ Need maximum performance
- ✅ iOS 18+ available
- ✅ High-throughput requirements
- ✅ Production deployments
- ✅ Protocol Buffers familiarity
Example: Large-scale data collection, real-time processing
Use MQTT When:¶
- ✅ Multiple subscribers needed
- ✅ IoT deployment
- ✅ Broker-based architecture
- ✅ Distributed processing
- ✅ Quality of Service needed
Example: Multiple receivers, cloud processing, IoT systems
Use HTTP/REST When:¶
- ✅ Simple webhook integration
- ✅ REST API compatibility
- ✅ Easy debugging needed
- ✅ Cloud function triggers
- ✅ Simple scripts
Example: Web services, cloud functions, simple integrations
Use Bluetooth LE When:¶
- ✅ No Wi-Fi available
- ✅ Low power requirements
- ✅ Telemetry-only use case
- ✅ Direct device connection
- ✅ Cable-free operation
Example: Field deployments, low-power scenarios, telemetry only
Use MCAP Stream When:¶
- ✅ Robotics research
- ✅ Foxglove Studio integration
- ✅ Standardized format needed
- ✅ Tool compatibility required
- ✅ Rich metadata needed
Example: Robotics research, Foxglove visualization, standardized data
Use QUIC/HTTP3 When:¶
- ✅ Ultra-low latency required
- ✅ Unstable network conditions
- ✅ Mobile network scenarios
- ✅ Real-time applications
- ✅ iOS 15+ available
Example: Real-time control, mobile networks, unstable connections
Performance Comparison¶
Latency (Lower is Better)¶
Throughput (Higher is Better)¶
Setup Complexity (Lower is Better)¶
Quick Reference¶
| Use Case | Recommended Protocol |
|---|---|
| First-time user | WebSocket |
| Maximum performance | gRPC |
| Multiple subscribers | MQTT |
| Simple integration | HTTP/REST |
| No Wi-Fi | Bluetooth LE |
| Robotics research | MCAP Stream |
| Ultra-low latency | QUIC/HTTP3 |
Next Steps¶
- Protocol Comparison - Detailed comparison
- Protocol Guides - Setup instructions
- Troubleshooting - Common issues