国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

on

(要求Workerman版本>=3.3.0)

void \Channel\Client::on(string $event_name, callback $callback_function)

訂閱$event_name事件并注冊(cè)事件發(fā)生時(shí)的回調(diào)$callback_function

回調(diào)函數(shù)的參數(shù)

$event_name

訂閱的事件名稱(chēng),可以是任意的字符串。

$callback_function

事件發(fā)生時(shí)觸發(fā)的回調(diào)函數(shù)。函數(shù)原型為callback_function(mixed $event_data)。$event_data是事件發(fā)布(publish)時(shí)傳遞的事件數(shù)據(jù)。

注意:

如果同一個(gè)事件注冊(cè)了兩個(gè)回調(diào)函數(shù),后一個(gè)回調(diào)函數(shù)將覆蓋前一個(gè)回調(diào)函數(shù)。

范例

多進(jìn)程Worker(多服務(wù)器),一個(gè)客戶(hù)端發(fā)消息,廣播給所有客戶(hù)端

start.php

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// 初始化一個(gè)Channel服務(wù)端
$channel_server = new Channel\Server('0.0.0.0', 2206);

// websocket服務(wù)端
$worker = new Worker('websocket://0.0.0.0:4236');
$worker->name = 'websocket';
$worker->count = 6;
// 每個(gè)worker進(jìn)程啟動(dòng)時(shí)
$worker->onWorkerStart = function($worker)
{
    // Channel客戶(hù)端連接到Channel服務(wù)端
    Channel\Client::connect('127.0.0.1', 2206);
    // 訂閱broadcast事件,并注冊(cè)事件回調(diào)
    Channel\Client::on('broadcast', function($event_data)use($worker){
        // 向當(dāng)前worker進(jìn)程的所有客戶(hù)端廣播消息
        foreach($worker->connections as $connection)
        {
            $connection->send($event_data);
        }
    });
};

$worker->onMessage = function(TcpConnection $connection, $data)
{
   // 將客戶(hù)端發(fā)來(lái)的數(shù)據(jù)當(dāng)做事件數(shù)據(jù)
   $event_data = $data;
   // 向所有worker進(jìn)程發(fā)布broadcast事件
   \Channel\Client::publish('broadcast', $event_data);
};

Worker::runAll();

測(cè)試

打開(kāi)chrome瀏覽器,按F12打開(kāi)調(diào)試控制臺(tái),在Console一欄輸入(或者把下面代碼放入到html頁(yè)面用js運(yùn)行)

接收消息的連接

// 127.0.0.1換成實(shí)際workerman所在ip
ws = new WebSocket("ws://127.0.0.1:4236");
ws.onmessage = function(e) {
    alert("收到服務(wù)端的消息:" + e.data);
};

廣播消息

ws.send('hello world');
編輯于2024-03-13 17:37:19 完善本頁(yè) +發(fā)起討論
贊助商