Swoole练习 websocket
2024-10-18 21:07:15
WEBSOCKET
服务端代码
//创建websocket服务器对象,监听0.0.0.0:9502端口
$ws = new swoole_websocket_server("0.0.0.0", 9502); //监听WebSocket连接打开事件
$ws->on('open', function ($ws, $request) {
var_dump($request->fd, $request->get, $request->server);
$ws->push($request->fd, "hello, welcome\n");
}); //监听WebSocket消息事件
$ws->on('message', function ($ws, $frame) {
echo "Message: {$frame->data}\n";
$ws->push($frame->fd, "server: {$frame->data}");
}); //监听WebSocket连接关闭事件
$ws->on('close', function ($ws, $fd) {
echo "client-{$fd} is closed\n";
}); $ws->start();
WebSocket服务器是建立在Http服务器之上的长连接服务器,客户端首先会发送一个Http的请求与服务器进行握手。握手成功后会触发onOpen事件,表示连接已就绪,onOpen函数中可以得到$request
对象,包含了Http握手的相关信息,如GET参数、Cookie、Http头信息等。
建立连接后客户端与服务器端就可以双向通信了。
- 客户端向服务器端发送信息时,服务器端触发
onMessage
事件回调 - 服务器端可以调用
$server->push()
向某个客户端(使用$fd标识符)发送消息 - 服务器端可以设置
onHandShake
事件回调来手工处理WebSocket握手
待续 需要安装 客户端
最新文章
- oracle的分析函数over 及开窗函数
- sql server 按分组拼接数据
- JPA事务总结
- Spring结合Quartz实现多任务定时调用(转载)
- win10窗口设置眼睛保护色
- 如何用Android Studio打多包名APK
- 公共POI导出Excel方法--java
- BI案例:KPI在商业智能中的应用(ZT)
- mysql中间件研究(Atlas,cobar,TDDL)
- Android Activity管理类
- 整理收藏一份PHP高级工程师的笔试…
- C语言:统计数字空格其他字符程序
- Jetson tk1 刷机后要做的几件事
- 在ListBoxItem的样式中的button传参,把当前选中项传递到命令的方法
- 关于OBS获取显示器黑屏的解决办法
- jquery日期和时间的插件精确到秒
- Let's encrypt申请泛域名证书
- 认识与学习BASH(下)
- 设置input placeholder的样式
- 【Android】3.0 Android开发环境的搭建(2)——eclipse
热门文章
- C# 模式匹配
- 记下mongoose(转载)
- Linux 用户和用户组管理之 修改用户名和用户组;修改用户密码
- Kafka 幂等生产者和事务生产者特性(讨论基于 kafka-python | confluent-kafka 客户端)
- 《挑战30天C++入门极限》C++类静态数据成员与类静态成员函数
- window.location.href在微信端不起作用的解决方法?
- Nginx模块说明
- 三层设备-SHRP详解
- kubernetes(K8S)创建自签TLS证书
- Open vSwitch系列实验(一):Open vSwitch使用案例扩展实验