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

基本流程

(以一個(gè)簡(jiǎn)單的Websocket聊天室服務(wù)端為例)

1、任意位置建立項(xiàng)目目錄

如 SimpleChat/
進(jìn)入目錄執(zhí)行 composer require workerman/workerman

2、引入vendor/autoload.php (composer安裝后生成)

創(chuàng)建 start.php ,引入vendor/autoload.php

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

3、選定協(xié)議

這里我們選定Text文本協(xié)議(Workerman中自定義的一個(gè)協(xié)議,格式為文本+換行)

(目前Workerman支持HTTP、Websocket、Text文本協(xié)議,如果需要使用其它協(xié)議,請(qǐng)參照協(xié)議一章開(kāi)發(fā)自己的協(xié)議)

4、根據(jù)需要寫入口啟動(dòng)腳本

例如下面這個(gè)是一個(gè)簡(jiǎn)單的聊天室的入口文件。

SimpleChat/start.php

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

$global_uid = 0;

// 當(dāng)客戶端連上來(lái)時(shí)分配uid,并保存連接,并通知所有客戶端
function handle_connection($connection)
{
    global $text_worker, $global_uid;
    // 為這個(gè)連接分配一個(gè)uid
    $connection->uid = ++$global_uid;
}

// 當(dāng)客戶端發(fā)送消息過(guò)來(lái)時(shí),轉(zhuǎn)發(fā)給所有人
function handle_message(TcpConnection $connection, $data)
{
    global $text_worker;
    foreach($text_worker->connections as $conn)
    {
        $conn->send("user[{$connection->uid}] said: $data");
    }
}

// 當(dāng)客戶端斷開(kāi)時(shí),廣播給所有客戶端
function handle_close($connection)
{
    global $text_worker;
    foreach($text_worker->connections as $conn)
    {
        $conn->send("user[{$connection->uid}] logout");
    }
}

// 創(chuàng)建一個(gè)文本協(xié)議的Worker監(jiān)聽(tīng)2347接口
$text_worker = new Worker("text://0.0.0.0:2347");

// 只啟動(dòng)1個(gè)進(jìn)程,這樣方便客戶端之間傳輸數(shù)據(jù)
$text_worker->count = 1;

$text_worker->onConnect = 'handle_connection';
$text_worker->onMessage = 'handle_message';
$text_worker->onClose = 'handle_close';

Worker::runAll();

5、測(cè)試

Text協(xié)議可以用telnet命令測(cè)試

telnet 127.0.0.1 2347
編輯于2024-03-13 17:37:18 完善本頁(yè) +發(fā)起討論
贊助商