Зависит от конфигурации сервера.
Есть вот еще такая замечательная штука:
https://github.com/ratchetphp/RatchetТвою задачу с ее помощью можно решить в несколько строк (причем, взятых почти полностью из example):
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
class Notify implements MessageComponentInterface {
protected $clients;
public function __construct() {
$this->clients = new \SplObjectStorage;
}
public function onOpen(ConnectionInterface $conn) {
$this->clients->attach($conn);
}
public function onMessage(ConnectionInterface $from, $msg) {
}
public function onClose(ConnectionInterface $conn) {
$this->clients->detach($conn);
}
public function onError(ConnectionInterface $conn, \Exception $e) {
$conn->close();
}
public function notifyClients($data) {
foreach($this->clients as $client) {
$client->send($data);
}
}
}
$notify = new Notify();
$loop = React\EventLoop\Factory::create();
$app = new Ratchet\App('localhost', 8081, '0.0.0.0', $loop);
$loop->addPeriodicTimer(5, function () use ($notify) {
$newDataFromMSSQL = date('Y-m-d H:i:s');
if ($newDataFromMSSQL) {
$notify->notifyClients($newDataFromMSSQL);
}
});
$app->route('/notify', $notify, array('*'));
$app->run();
var conn = new WebSocket('ws://localhost:8081/notify');
conn.onmessage = function(e) { console.log(e.data); };
Осталось реализовать получение данных из MSSQL (вместо $newDataFromMSSQL = date('Y-m-d H:i:s');) и proof of concept готов.
_____________
Чатик в телеге