From 1eee94d2604fb43b5a4a21c281c72ad356906a88 Mon Sep 17 00:00:00 2001 From: Fbenas Date: Sun, 12 Mar 2017 23:57:42 +0000 Subject: Added identify form and Ratchet websockets test stuff --- src/Ratchet/Chat.php | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/Ratchet/Chat.php (limited to 'src/Ratchet') diff --git a/src/Ratchet/Chat.php b/src/Ratchet/Chat.php new file mode 100644 index 0000000..3410cf4 --- /dev/null +++ b/src/Ratchet/Chat.php @@ -0,0 +1,59 @@ +clients = new SplObjectStorage; + } + + public function onOpen(ConnectionInterface $conn) + { + // Store the new connection to send messages to later + $this->clients->attach($conn); + + echo "New connection! ({$conn->resourceId})\n"; + } + + public function onMessage(ConnectionInterface $from, $msg) + { + $numRecv = count($this->clients) - 1; + echo sprintf( + 'Connection %d sending message "%s" to %d other connection%s' . "\n", + $from->resourceId, + $msg, + $numRecv, + $numRecv == 1 ? '' : 's' + ); + + foreach ($this->clients as $client) { + if ($from !== $client) { + // The sender is not the receiver, send to each client connected + $client->send($msg); + } + } + } + + public function onClose(ConnectionInterface $conn) + { + // The connection is closed, remove it, as we can no longer send it messages + $this->clients->detach($conn); + + echo "Connection {$conn->resourceId} has disconnected\n"; + } + + public function onError(ConnectionInterface $conn, \Exception $e) + { + echo "An error has occurred: {$e->getMessage()}\n"; + + $conn->close(); + } +} -- cgit v1.2.3