diff options
Diffstat (limited to 'infrastructure/Http/WebSocketController.php')
-rw-r--r-- | infrastructure/Http/WebSocketController.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/infrastructure/Http/WebSocketController.php b/infrastructure/Http/WebSocketController.php new file mode 100644 index 0000000..19e0868 --- /dev/null +++ b/infrastructure/Http/WebSocketController.php @@ -0,0 +1,56 @@ +<?php + +namespace Infrastructure\Http; + +use Ratchet\ConnectionInterface; +use Ratchet\MessageComponentInterface; + +class WebSocketController extends Controller implements MessageComponentInterface +{ + private $connections = []; + + /** + * When a new connection is opened it will be passed to this method + * @param ConnectionInterface $conn The socket/connection that just connected to your application + * @throws \Exception + */ + function onOpen(ConnectionInterface $conn) + { + $this->connections[$conn->resourceId] = compact('conn') + ['user_id' => null]; + } + + /** + * This is called before or after a socket is closed (depends on how it's closed). SendMessage to $conn will not result in an error if it has already been closed. + * @param ConnectionInterface $conn The socket/connection that is closing/closed + * @throws \Exception + */ + function onClose(ConnectionInterface $conn) + { + $disconnectedId = $conn->resourceId; + unset($this->connections[$disconnectedId]); + } + + /** + * If there is an error with one of the sockets, or somewhere in the application where an Exception is thrown, + * the Exception is sent back down the stack, handled by the Server and bubbled back up the application through this method + * @param ConnectionInterface $conn + * @param \Exception $e + * @throws \Exception + */ + function onError(ConnectionInterface $conn, \Exception $e) + { + unset($this->connections[$conn->resourceId]); + $conn->close(); + } + + /** + * Triggered when a client sends data through the socket + * @param \Ratchet\ConnectionInterface $conn The socket/connection that sent the message to your application + * @param string $msg The message received + * @throws \Exception + */ + function onMessage(ConnectionInterface $conn, $msg) + { + + } +}
\ No newline at end of file |