Пример #1
0
<?php

class G
{
    static $cluster = array();
}
$server = new swoole_server("0.0.0.0", 9501);
$server->listen("192.168.1.100", 9509, SWOOLE_NODE);
G::$cluster[] = $server->addNode("192.168.1.102", 9509);
G::$cluster[] = $server->delNode("192.168.1.103", 9509);
$server->on('NodeMessage', function (swoole_server $serv, $nodeId, $message) {
    $replyMessage = "helo {$message}";
    //回复消息
    $serv->sendMessage($replyMessage, $nodeId);
    //向第二个节点发消息
    $serv->sendMessage($message, G::$cluster[1]);
    //添加新节点
    $cluster[] = $serv->addNode("192.168.1.103", 9509);
});
$server->on('receive', function (swoole_server $serv, $fd, $from_id, $data) {
    $cmd = trim($data);
    //发给节点0
    $serv->sendMessage($cmd, G::$cluster[0]);
    //向所有节点广播
    foreach (G::$cluster as $nodeId) {
        $serv->sendMessage($cmd, $nodeId);
    }
});
$server->start();