workerman 长连接 php,php中的swoole和workman比较。哪个socket长连接性能高?

本文详细介绍了如何使用PHP的Swoole库创建WebSocket服务器,包括配置长连接数组、事件监听和消息推送,以及在浏览器中通过WebSocket进行客户端与服务器交互的步骤。通过实验验证了多浏览器连接的同步效果。
摘要由CSDN通过智能技术生成

一.服务器端:

1. 编辑server.php文件内容如下:

$reqs=array(); //保持客户端的长连接在这个数组里

$serv = new swoole_websocket_server("192.168.2.115", 9502);

//如下可以设置多端口监听

//$server = new swoole_websocket_server("0.0.0.0", 9501, SWOOLE_BASE);

//$server->addlistener('0.0.0.0', 9502, SWOOLE_SOCK_UDP);

//$server->set(['worker_num' => 4]);

$serv->on('Open', function($server, $req) {

global $reqs;

$reqs[]=$req->fd;

echo "connection open: ".$req->fd."\n";

var_dump(count($reqs));//输出长连接数

});

$serv->on('Message', function($server, $frame) {

global $reqs;

echo "message: ".$frame->data."\n";

foreach($reqs as $fd){

$server->push($fd, $frame->data);

}

});

$serv->on('Close', function($server, $fd) {

echo "connection close: ".$fd."\n";

});

$serv->start();12345678910111213141516171819202122232425262728

2. 启动上面实现的websocket服务代码

[songaimin@localhost Tests]$/usr/bin/php server.php1

客户端-同事打开两个浏览器模拟多client:

3. 在浏览器console里运行:

var wsl= 'ws://192.168.2.115:9502'

ws = new WebSocket(wsl);//新建立一个连接

//如下指定事件处理

ws.onopen = function(){ws.send('Test!'); };

ws.onmessage = function(evt){console.log(evt.data);/*ws.close();*/};

ws.onclose = function(evt){console.log('WebSocketClosed!');};

ws.onerror = function(evt){console.log('WebSocketError!');}; 1234567

4. 在任意浏览器console里手动执行:

ws.send(888);

//看每个浏览器的内容console输出应该是一样的就实验在成功了

ws.close();//关闭连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值