【问题标题】:Send data to all clients periodically定期向所有客户端发送数据
【发布时间】:2017-02-07 12:51:25
【问题描述】:

我正在使用WorkermanPHPSocketIO 并试图弄清楚如何定期将数据发送到指定的服务器。出于某种原因,我可以在 Javascript 中完美地做到这一点,但我需要从 PHP 向所有连接的客户端发出通知。我尝试使用独立功能连接到服务器并通过标准“消息”通知它,但由于某种原因它什么也没做。

<?php

require_once __DIR__ . '/vendors/autoload.php';
use Workerman\Worker;
use PHPSocketIO\SocketIO;

static $_TERMINATE_TIME = 61;
static $_CHECK_DATA = 3;

$io = new SocketIO(1234);
$io->on('connection', function($socket){
    $socket->addedUser = false;
    echo 'New user connected' . PHP_EOL;
    $socket->broadcast->emit('message', array(
        'data'=> array('test' => 1, 'blah' => 2)
    ));
    $socket->on('message', function ($data)use($socket){
        $socket->broadcast->emit('message', array(
            'data' => array('test' => 1, 'blah' => 2)
        ));
    });
});

function HasData()
{
    echo 'Need to send server-side data to all clients ...' . PHP_EOL;
}

// Need to send notifications from the server every N seconds
\Workerman\Lib\Timer::add($_CHECK_DATA, 'HasData', null, true);
// Self-destruct server after K seconds
\Workerman\Lib\Timer::add($_TERMINATE_TIME, function() {Worker::stopAll();}, null, false);

Worker::runAll();

【问题讨论】:

    标签: php websocket phpwebsocket


    【解决方案1】:

    由于 PHP 中没有现成的解决方案可以让我连接并请求 websockets 服务器来通知所有客户端,因此我们决定使用 clssic JavaScript 乒乓球和数据检索来解决。

    【讨论】:

      猜你喜欢
      • 2019-04-29
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2022-11-15
      • 1970-01-01
      • 2013-02-01
      • 2017-05-07
      相关资源
      最近更新 更多