zoukankan      html  css  js  c++  java
  • workerman channel组件集群推送

    <?php
    use WorkermanWorker;

    require_once '../../web/Workerman/Autoloader.php';
    require_once '../../web/Channel/src/Server.php';
    require_once '../../web/Channel/src/Client.php';

    $worker = new Worker('text://0.0.0.0:0623');

    $channel = new ChannelServer('0.0.0.0', 8888);

    $worker->count = 3;
    $worker->onWorkerStart = function ($worker)
    {
    ChannelClient::connect('127.0.0.1', 8888);
    ChannelClient::on('broadcast', function($event_data)use($worker){
    $event_data = json_decode($event_data);
    if (!empty($event_data->work_id) && !empty($event_data->to_connect_id)) {
    $worker_id = $event_data->work_id;
    $to_connect_id = $event_data->to_connect_id;
    if ($worker_id == $worker->id) {
    foreach ($worker->connections as $connection) {
    if ($connection->id == $to_connect_id) {
    $connection->send($event_data->content);
    }
    }
    }
    } else {
    foreach ($worker->connections as $connection) {
    $connection->send($event_data['content']);
    }
    }
    });
    };
    $worker->onConnect = function ($connection)use($worker)
    {
    echo '用户姐夫' . 'worker id ' . $worker->id . ',connection id ' . $connection->id . "上线 ";};$worker->onMessage = function ($connection, $data)use($worker){ echo '用户姐夫' . 'worker id ' . $worker->id . ',connection id ' . $connection->id . "上线 "; $event_data['content'] = $data; $event_data['work_id'] = 2; $event_data['to_connect_id'] = 2;//这里模拟只向work进程id为2 connect id 为2 的tcp链接发送信息 $data_event = json_encode($event_data); ChannelClient::publish('broadcast', $data_event);};Worker::runAll();
  • 相关阅读:
    redis的安装,使用
    命令行操作数据库
    7天免登陆
    javascript基础 (2)
    SPSS中,进行配对样本T检验
    SPSS中,进行两独立样本T检验
    SPSS中,进行描述性统计,绘制箱线图,直方图,检验数据正态性分布等
    SpringMVC详细步骤
    JAVA线程缓存池
    常用命令(转http://blog.csdn.net/ljianhui/article/details/11100625/)
  • 原文地址:https://www.cnblogs.com/jasonxiaoqinde/p/7463343.html
Copyright © 2011-2022 走看看