# facebookincubator/socketrocket

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/facebookincubator-socketrocket).**

9,616 stars · 2,007 forks · Objective-C · NOASSERTION

## Links

- GitHub: https://github.com/facebookincubator/SocketRocket
- awesome-repositories: https://awesome-repositories.com/repository/facebookincubator-socketrocket.md

## Description

SocketRocket is an Objective-C WebSocket client library designed to establish bidirectional real-time communication channels between an application and a server. It provides a networking layer for real-time data streaming, utilizing a heartbeat monitor to maintain the stability of active network streams.

The library is built to operate across restricted networks by routing traffic through HTTP proxies. It secures data transmission using TLS encryption and SSL certificate pinning to prevent unauthorized interception of network traffic.

Its underlying capabilities include low-level TCP socket integration, stream-based frame parsing, and an HTTP handshake upgrade protocol. The system tracks connection lifecycles via an event-driven state model to notify the host of open, close, and error events.

## Tags

### Networking & Communication

- [WebSocket Clients](https://awesome-repositories.com/f/networking-communication/websocket-clients.md) — Provides a library for establishing and managing bidirectional WebSocket connections over HTTP. ([source](https://github.com/facebookincubator/socketrocket#readme))
- [Byte Stream Framing](https://awesome-repositories.com/f/networking-communication/byte-stream-framing.md) — Processes incoming byte streams into discrete WebSocket frames by reading headers and calculating payload lengths.
- [Connection Keepalives](https://awesome-repositories.com/f/networking-communication/connection-keepalives.md) — Sends periodic control frames to the server to prevent connection timeouts and detect silent failures.
- [Connection Lifecycle Events](https://awesome-repositories.com/f/networking-communication/connection-lifecycle-events.md) — Tracks connection lifecycle transitions using a delegate pattern to notify the host of open, close, and error events.
- [Connection Upgraders](https://awesome-repositories.com/f/networking-communication/connection-management/websocket-connection-managers/connection-upgraders.md) — Initiates connections via standard HTTP requests and upgrades the socket to the WebSocket protocol.
- [Real-Time Data Streams](https://awesome-repositories.com/f/networking-communication/real-time-data-streams.md) — Establishes a bidirectional communication channel between client and server for instant data exchange.
- [TCP Socket Programming](https://awesome-repositories.com/f/networking-communication/tcp-socket-programming.md) — Manages low-level network sockets to handle raw data transmission and bidirectional byte streams.
- [Health Monitoring](https://awesome-repositories.com/f/networking-communication/connection-management/websocket-connection-managers/health-monitoring.md) — Implements heartbeat signaling and response processing to maintain the stability of active network streams. ([source](https://github.com/facebookincubator/socketrocket#readme))
- [HTTP Proxies](https://awesome-repositories.com/f/networking-communication/http-proxies.md) — Allows connecting to remote servers through HTTP proxies to bypass network restrictions. ([source](https://github.com/facebookincubator/socketrocket#readme))
- [Proxy-Compatible Clients](https://awesome-repositories.com/f/networking-communication/http-proxies/proxy-compatible-clients.md) — Routes network traffic through HTTP proxies to maintain connectivity across restricted networks.
- [Proxy-Routed](https://awesome-repositories.com/f/networking-communication/websocket-clients/proxy-routed.md) — Routes WebSocket connections through an HTTP proxy to bypass network restrictions.

### Security & Cryptography

- [Encrypted Connection Handlers](https://awesome-repositories.com/f/security-cryptography/encrypted-connection-handlers.md) — Implements TLS encryption and certificate validation to prevent unauthorized interception of data. ([source](https://github.com/facebookincubator/socketrocket#readme))
- [SSL/TLS Connection Security](https://awesome-repositories.com/f/security-cryptography/ssl-tls-connection-security.md) — Wraps standard TCP connections in an encrypted layer to provide server certificate validation and secure data exchange.
- [WebSocket Security](https://awesome-repositories.com/f/security-cryptography/websocket-security.md) — Encrypts data transfers using TLS and SSL certificate pinning to prevent unauthorized interception.

### DevOps & Infrastructure

- [Heartbeat Monitors](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/heartbeat-monitors.md) — Uses periodic heartbeat signals to monitor and maintain the stability of active network streams.
