gatewayWorker支持Channel分布式通讯组件吗? 我看手册里面的例子都是Workerman的,没有gatewayworker的 能举个例子吗?谢谢了
http://doc.workerman.net/components/channel-client-on.html 用法一样吧。 start_gateway.php 所在目录里新建一个 start_channel.php。
require_once __DIR__ . '/../../vendor/autoload.php'; $channel_server = new Channel\Server('0.0.0.0', 2206); // 如果不是在根目录启动,则运行runAll方法 if(!defined('GLOBAL_START')) { Worker::runAll(); }
Events.php 里
class Events { public static function onWorkerStart() { // Channel客户端连接到Channel服务端 Channel\Client::connect('127.0.0.1', 2206); // 订阅broadcast事件,并注册事件回调 Channel\Client::on('broadcast', function($event_data)use($worker){ // 向当前worker进程的所有客户端广播消息 foreach($worker->connections as $connection) { $connection->send($event_data); } }); } public static function onMessage ($client_id, $data) { // 将客户端发来的数据当做事件数据 $event_data = $data; // 向所有worker进程发布broadcast事件 \Channel\Client::publish('broadcast', $event_data); } }
试下吧
好的,我试下
你好,我在一个服务器上试了可以,但是我把A做服务Server,B做Client,B接受不到数据
B连server的时候 Channel\Client::connect('127.0.0.1', 2206); 里的127.0.0.1要改成实际ip。并且A要把安全组和防火墙的2206端口开放出来。
http://doc.workerman.net/components/channel-client-on.html
用法一样吧。
start_gateway.php 所在目录里新建一个 start_channel.php。
Events.php 里
试下吧
好的,我试下
你好,我在一个服务器上试了可以,但是我把A做服务Server,B做Client,B接受不到数据
B连server的时候 Channel\Client::connect('127.0.0.1', 2206); 里的127.0.0.1要改成实际ip。并且A要把安全组和防火墙的2206端口开放出来。