Ratchet is a component library for PHP that provides developers with the tools to create real time, bi-directional applications between clients and servers.
WebSockets are a bi-directional, full-duplex, persistent connection from a web browser to a server. Once a WebSocket connection is established the connection stays open until the client or server decides to close this connection. With this open connection, the client or server can send a message at any given time to the other. This makes web programming entirely event driven, not (just) user initiated. It is stateful. As well, at this time, a single running server application is aware of all connections, allowing you to communicate with any number of open connections at any given time.
It consists of multiple components including:
- IoServer (the core to handle the events)
- WsServer (for communicating with W3C WebSocket API)
- SessionProvider (for handling the sessions)
- WampServer (provides the RPC and PubSub patterns)
- FlashPolicy (Flash fallback for unsupported browsers)
- IpBlackList (prevent any IPs from opening connections)