我们一直使用的http协议只能由客户端发起,服务端无法直接进行推送,这就导致了如果服务端有持续的变化客户端想要获知就比较麻烦。WebSocket协议就是为了解决这个问题应运而生。
https://www.workerman.net/
下载PHP socket即时通讯框架。
https://www.workerman.net/download/workermanzip
<?phpuse Workerman\Worker;require_once __DIR__ . '/Workerman/Autoloader.php';// 注意:这里与上个例子不同,使用的是websocket协议$ws_worker = new Worker("websocket://0.0.0.0:2000");// 启动4个进程对外提供服务$ws_worker->count = 4;// 当收到客户端发来的数据后返回hello $data给客户端$ws_worker->onMessage = function($connection, $data){// 向客户端发送hello $data$connection->send('hello ' . $data);};// 运行workerWorker::runAll();
命令执行php ws_test.php start
打开chrome浏览器,按F12打开调试控制台,在Console一栏输入(或者把下面代码放入到html页面用js运行)
// 假设服务端ip为127.0.0.1ws = new WebSocket("ws://127.0.0.1:2000");ws.onopen = function() {alert("连接成功");ws.send('tom');alert("给服务端发送一个字符串:tom");};ws.onmessage = function(e) {alert("收到服务端的消息:" + e.data);};

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号