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握手

待续  需要安装 客户端

最新文章

  1. oracle的分析函数over 及开窗函数
  2. sql server 按分组拼接数据
  3. JPA事务总结
  4. Spring结合Quartz实现多任务定时调用(转载)
  5. win10窗口设置眼睛保护色
  6. 如何用Android Studio打多包名APK
  7. 公共POI导出Excel方法--java
  8. BI案例:KPI在商业智能中的应用(ZT)
  9. mysql中间件研究(Atlas,cobar,TDDL)
  10. Android Activity管理类
  11. 整理收藏一份PHP高级工程师的笔试…
  12. C语言:统计数字空格其他字符程序
  13. Jetson tk1 刷机后要做的几件事
  14. 在ListBoxItem的样式中的button传参,把当前选中项传递到命令的方法
  15. 关于OBS获取显示器黑屏的解决办法
  16. jquery日期和时间的插件精确到秒
  17. Let's encrypt申请泛域名证书
  18. 认识与学习BASH(下)
  19. 设置input placeholder的样式
  20. 【Android】3.0 Android开发环境的搭建(2)——eclipse

热门文章

  1. C# 模式匹配
  2. 记下mongoose(转载)
  3. Linux 用户和用户组管理之 修改用户名和用户组;修改用户密码
  4. Kafka 幂等生产者和事务生产者特性(讨论基于 kafka-python | confluent-kafka 客户端)
  5. 《挑战30天C++入门极限》C++类静态数据成员与类静态成员函数
  6. window.location.href在微信端不起作用的解决方法?
  7. Nginx模块说明
  8. 三层设备-SHRP详解
  9. kubernetes(K8S)创建自签TLS证书
  10. Open vSwitch系列实验(一):Open vSwitch使用案例扩展实验