首先下載workerman??https://www.workerman.net/download ? ? ? ? ? ? ? ? ? ? ? ?(推薦學習: workerman教程)
下載好后在workerman文件下創建一個新的文件start.php
代碼如下
<?php use WorkermanWorker; //Autoloader.php路徑 require_once "./Autoloader.php"; $global_uid = 0; // 當客戶端連上來時分配uid,并保存連接,并通知所有客戶端 function handle_connection($connection) { global $text_worker, $global_uid; // 為這個連接分配一個uid $connection->uid?=?++$global_uid; } ? //?當客戶端發送消息過來時,轉發給所有人 function?handle_message($connection,?$data) { ????global?$text_worker; ????foreach($text_worker->connections?as?$conn) ????{ ????????$conn->send("user[{$connection->uid}]?said:?$data"); ????} } ? //?當客戶端斷開時,廣播給所有客戶端 function?handle_close($connection) { ????global?$text_worker; ????foreach($text_worker->connections?as?$conn) ????{ ????????$conn->send("user[{$connection->uid}]?logout"); ????} } ? //?創建一個文本協議的Worker監聽2000接口??用0.0.0.0方便鏈接內網外網 $text_worker?=?new?Worker("websocket://0.0.0.0:2000");?? ? //?只啟動1個進程,這樣方便客戶端之間傳輸數據 $text_worker->count?=?1; ? $text_worker->onConnect?=?'handle_connection'; $text_worker->onMessage?=?'handle_message'; $text_worker->onClose?=?'handle_close'; ? Worker::runAll();
然后命令行運行? ?php start.php start
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END