go语言服务器负载均衡 golang服务器用什么框架( 四 )


如果返回成功 , Websocket就会回调onopen事件
游戏服务器的使用的TCP协议,是在协议的包头使用4Byte来声明本协议长度,然后将协议一次性发送 。但是在WS协议是通过Frame形式发送的,会将一条消息分为几个frame,按照先后顺序传输出去 。这样做会有几个好处:
websocket的协议格式:
参数说明如下:
阿里云的SLB开启HTTP监听后,会检查过往的Request和Response请求 , 收到服务器返回的Response后 , 会往Response插入一个Cookie
客户端收到服务器的Response后 , 可以在Header中查到有个“Set-Cookie”字段,里面是SLB插入的Cookie值
客户端断开连接后 , 下次发送请求需要往Headers插入Cookie字段
分别在阿里云的两台ECS实例上部署WS服务器,打开8000端口,开启一个SLB服务,SLB服务选择HTTP方式监听,并且打开会话保持功能,Cookie处理方式选择植入Cookie 。Demo服务器没有做HTTP健康监听的处理,健康检查这块可以先关掉 。
在两台ECS上启动WS服务器,然后本地运行客户端 , 分别测试两台服务器是否能正常连接,测试完毕后 , 测试SLB能否正常工作 。服务器和SLB都正常的情况下,运行客户端,客户端会得到以下结果
收到的三次Cookie都相同 , 说明Cookie是有正常植入工作的,并且三次都被SLB正确抓取了 。
收到的三次serverId也都是同样的值 , 说明三次都是同一个ECS上的服务器响应 。
至此 , 验证成功 。
Websocket+SLB会话保持能够解决超时重连和切换网络时重连的问题 。
参考:
阿里云会话保持
解答Wi-Fi与4G网络切换的困惑
WebSocket的实现原理
阿里云SLB对WebSocket的支持
HTTP Headers和Cookie
【go语言服务器负载均衡 golang服务器用什么框架】关于go语言服务器负载均衡和golang服务器用什么框架的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读