I\'m trying to periodically send a \"hello world!\" message to all clients connected to the chat-server from the Ratchet tutorial
I will post all of the code here: C
$server
isn't defined in the function scope and variables from the parent scope don't get inherited to the child scope by default. Closures can inherit variables from the parent scope by using the use
language construct.
$server->loop->addPeriodicTimer(5, function () use ($server) {
foreach ($server->app->clients as $client) {
$client->send("hello client");
}
});
More information about anonymous functions (closures): https://secure.php.net/manual/en/functions.anonymous.php
More information about variables scope: https://secure.php.net/manual/en/language.variables.scope.php
After some updates the Client Connections are accessible in the MessageHandler
$port = 3001;
$handler = new MessageHandler();
$server = IoServer::factory(
new HttpServer(
new WsServer(
handler
)
),
$port
);
$server->loop->addPeriodicTimer(0.1, function () use ($handler) {
handler->doStuff();
});
$server->run();
The MessageHandler can be found here. The doStuff method should be implemented in this class:
https://github.com/leorojas22/symfony-websockets/blob/master/src/Websocket/MessageHandler.php