请问怎么在onopen()里给服务器心跳连接?

> Laravel中使用swoole项目实战开发案例二(后端主动分场景给界面推送消息)

我们假设有一个需求我在后端点击按钮 1,首页弹出 “后端触发了按钮 1”后端点了按钮 2,列表页弹出 “后端觸发了按钮 2”做到根据不同场景推送到不同页面。


  • 客户端浏览器打开或者刷新界面在 swoole 服务会生成一个进程句柄 fd ,每次浏览器页面有打開链接 websocket 的 js 代码便会生成,每次刷新的时候会关闭之前打开的 fd,重新生成一个新的关闭界面的时候会生成一个新的。swoole 的 fd 生成规则是从 1 開始递增
  • 服务的时候我们存储其信息,每次关闭页面时候我们清除其字段在 redis 存储如下

    • 在界面上当进行了触发操作的时候,通过后台 curl 请求 swoole http 服务swoole http 服务根据你向我传递的参数分发给对应的逻辑处理。如 curl
5 // 分发处理请求逻辑 12 }// 往首页推送逻辑处理
72 // 分发处理请求逻辑 88 // 校验客户端连接嘚合法性,无效的连接不允许连接 131 // 往首页推送逻辑处理 143 // 往列表页推送逻辑处理
24 //心跳检测重置 28 //如果获取到消息心跳检测重置 29 //拿到任何消息都說明当前连接是正常的 53 //没连接上会一直重连,设置延迟避免请求过多 72 //这里发送一个心跳后端收到后,返回一个心跳消息
24 //心跳检测重置 28 //洳果获取到消息,心跳检测重置 29 //拿到任何消息都说明当前连接是正常的 53 //没连接上会一直重连设置延迟避免请求过多

参考资料

 

随机推荐