apache php mysql是长连接吗_php mysql的长连接和短连接?

本文介绍了一个简单的WebSocket服务端与客户端交互实例。服务端使用PHP的swoole扩展实现,支持客户端的长连接并广播消息到所有已连接的客户端。客户端通过JavaScript的WebSocket API连接到服务端,并发送及接收消息。
摘要由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、付费专栏及课程。

余额充值