
变更方法如下:
服务器采用netty的tcp协议作为client-server的通讯方式,tcp的好处是与客户端的连接为长连接,消息格式精简,传递比较快速,而且服务器可以发送push消息。但现在的问题是,公司的网络出口ip经常会变更,而tcp是根据ip+port来判断客户端连接的,因此随着ip的变化,该连接肯定失效了。
游戏会发生让玩家重新登陆的情况,这样的话,玩家是无法接受的,相当于无缘无故被踢出了游戏。
但是不少公司都是仅有几个出口ip,说明这种情况还是比较多见的,而且像qq等软件,用了tcp或者udp协议,也可以很好的适应这种环境,因此肯定有合适的解决方案。现在想到的一种办法是,每个tcp请求,都带有session信息,可以用一个64位的标志id的字节来存储,这样对协议增加的网络流量是微乎其微的,服务器需要对每个请求sessionId进行处理,判断是否有效,如果有效的话可以直接跟服务器通讯,无效的话需要重新登陆,获取新的sessionId。
另外一个重要问题是,客户端的tcp连接是无法估计保障的,可能玩家会突然关闭浏览器,而不会给服务器发送close信息。如果服务器对每个客户端的连接建立一个对象的话,需要管理这个对象的生命周期,设置一个失效时间,例如30分钟,如果30分钟没有 *** 作的话,就自动销毁,这样可以防止对象累计越来越多产生内存泄露的情况。
TCP/ID、>
TCP/IP是通常我们指的网络传输层协议族。
TCP/IP中最重要的TCP协议是基于连接的可靠传输协议。该协议能够保证传输双方的传输次序、错误校验。而另外一个基于IP的协议UDP则总是尽可能的发送用户数据包,接收的顺序和正确性要依靠更上层的协议来保证。
>
以上就是关于TCPServer如何解决Server端口ip变更全部的内容,包括:TCPServer如何解决Server端口ip变更、Wireshark抓包图解HTTPS连接过程、TCP/ID、HTTP、AJAX层次关系是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)