轉自:https://blog.csdn.net/Srodong/article/details/88351335
首先下載workerman https://www.workerman.net/download
下載好workerman,后在workerman文件下創建一個新的文件start.php
代碼如下:

<?php use Workerman\Worker; //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();
然后cmd運行start.php
簡單測打開瀏覽器,按F12打開調試控制台,在Console一欄輸入(或者把下面代碼放入到html頁面用js運行

// 假設服務端ip為127.0.0.1 ws = new WebSocket("ws://127.0.0.1:2000"); ws.onopen = function() { alert("連接成功"); ws.send('我是誰?'); alert("給服務端發送一個字符串:我是誰?"); }; ws.onmessage = function(e) { alert("收到服務端的消息:" + e.data); };
______________________