大背景:之后合作开发的闲聊是的机能,用的人太少了,考量一再就下定决心拿掉留言板的机能了,改做许多其它有趣的事,比如说现阶段早已合作开发好了的右边栏现阶段新浪网数目,写作时数统计统计数据(早已开始合作开发中)
碰到的难题:
网页尽管是react写的,但nextjs服务器端图形的,并非白眉林应用领域就无法像白眉林应用领域那般有函数调用储存整站的websocket服务器端采用nginx做为服务器端(之后是kong,而后杀掉了),nginx proxy模块预设有 readtimeout/sendtimeout 预设值60s服务器端socket储存计算机程序THF1安全可靠防雷同时实现路子:
即使是多页模式,就须要每一网页调用两个wss相连,按cookie去重之后是现阶段新浪网数目。
网页wss轮轴监督机制,即便断电是很常用的
nginx:proxyreadtimeout/proxysendtimeout预设60s延时,眩晕检验,只须要服务器端在60s内间歇推送ping(0x
服务器端储存socket内部结构体,没向选定socket写统计数据的市场需求,不须要附加保护socket的计算机程序,保护两个cookie新浪网网页数方可
安全可靠方面须要考量的内容是:
如何检验跨站点 WebSocket 劫持漏洞同一设备 ws 相连数如何限制,避免bug导致相连数过多导致服务挂掉解决方法:
Socket 客户端生成唯一的一次性 Token;客户端将 Token 做为 WebSocket 相连 URL 的参数(譬如wss :/ / douyacun . com ?token=randomOneTimeToken),推送到服务器端进行 WebSocket 握手相连;服务器端验证 Token 是否正确,一旦正确则将这个 Token 标示为废弃不再重用,同时确认 WebSocket 握手相连成功;如果 Token 验证失败或者身份认证失败,则返回403错误。