您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman使用WebSocket协议对外提供服务
发布时间:2021-11-27 16:04:46编辑:雪饮阅读()
创建start.php文件:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// 注意:这里与上个例子不同,使用的是websocket协议
$ws_worker = new Worker("websocket://0.0.0.0:2000");
// 启动4个进程对外提供服务
$ws_worker->count = 4;
// 当收到客户端发来的数据后返回hello $data给客户端
$ws_worker->onMessage = function(TcpConnection $connection, $data)
{
// 向客户端发送hello $data
$connection->send('hello ' . $data);
};
// 运行worker
Worker::runAll();
开启websocket服务:
[root@localhost workerman]# php -c /usr/local/php734/lib/php/php.ini start.php start
Workerman[start.php] start in DEBUG mode
------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
-------------------------------------------- WORKERS ---------------------------------------------
proto user worker listen processes status
tcp root none websocket://0.0.0.0:2000 4 [OK]
--------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
编写简单的js前端websocket操作实例test.html:
<!DOCTYPE HTML>
<html>
<head>
<meta content="text/html; charset=UTF-8"/>
<script>
var ws=new WebSocket("ws://192.168.43.170:2000");
function sendMessage(){
var time=new Date().getTime();
ws.send("你好,现在的时间毫秒数:"+time);
}
</script>
</head>
<body>
<button onclick="sendMessage()">发消息</button>
</body>
</html>
浏览器中运行测试:
关键字词:workerman,WebSocket