首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

websocket如何实现统计当前在线人数

背景:之前开发的聊天功能,用的人太少,考虑再三就决定去掉聊天室的功能了,改做一些其他有意思的事情,比如目前已经开发好了的左边栏当前在线人数,阅读时长统计(正在开发中)

遇到的问题:

•页面虽然是react写的,但是nextsj服务端渲染的,不是单页应用就不能像单页应用那样有全局变量存储整站的websocket•服务端使用nginx作为代理服务器(之前是kong,后来干掉了),nginx proxy模块默认有 read_timeout/send_timeout 默认值 60s•服务端socket存储数据结构选型

实现思路:

因为是多页模式,就需要每个页面初始化一个wss连接,按cookie去重以后就是当前在线人数。

页面wss重联机制,毕竟断网是很常见的

nginx:proxy_read_timeout/proxy_send_timeout默认60s超时,心跳检测,只需要服务端在60s内定时发送ping(0x9)消息就可以了,浏览器会自动回复pong消息

服务端存储socket结构体,没有向指定socket写数据的需求,不需要额外维护socket的数据结构,维护一个cookie在线页面数即可

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210123A04H4J00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券