我正在写一个线程/连接MMORPG服务器在Java中,我想知道,我应该使用普通的Socket类,并通过我自己的连接添加安全性(交换具有特定握手顺序的密钥?),还是使用SSLSocket类将客户端始终与服务器连接更好? 是否有任何基准或性能测试显示SSLSocket类的性能?MMORPG游戏服务器的Java SSLSocket
回答
大多数MMO服务器不使用SSLSockets,但对您的情况,这将是明智的。例如,您应该通过SSL连接执行Diffie-Hellman-Keyexchange,然后使用Blowfish对称地加密所有后续数据包。
附录: 我不认为它仍然认为SSLSockets将更多的负载放在服务器上。如果服务器是相当新的,他应该能够应付一点额外的加密负载。我知道星际争霸2它自己加密数据包,并使用UDP来达到这个目的。此外,WOW在数据包上使用加密技术,以防止数据在途中发生变化,并嗅探玩家位置。加密是每个MMO都必须的,但是你如何实现它取决于你。
我点你这个线程,在这个问题讨论:http://www.gamedev.net/topic/589113-should-mmorpgs-use-encryption/
此外,还有一个谷歌图书这个问题: http://books.google.at/books?id=hiBFUv_FT0wC&pg=PA105&lpg=PA105#v=onepage&q&f=false
我非常怀疑MMO服务器会有额外的带宽可用来保持解密SSL数据包。我会使用SSL进行登录,然后降级到常规套接字。
有降级到普通插座直接的方式?或者我应该重新连接客户端与处理程序或类似的东西? –
好吧,无论如何你都需要重新连接。无论如何,你不打算让游戏服务器和登录服务器处于同一进程中,对吗? ... 你是...?好,我不认为你会让自己陷入这个陷阱! :-)(提示:这样做会导致大规模的缩放问题,所以不要陷入这个陷阱。)你的大部分数据都可能用UDP发送,所以你会有额外的套接字。 – corsiKa
最后一个问题,你能给我任何好的书名吗?或者将我链接到这个主题的一些好的资源?即使我搜索了很长时间,我似乎也找不到多少:-(谢谢你的回答:-) –
- 1. 网站上的Java游戏服务器
- 2. Java NIO服务器回合制游戏
- 3. Java服务器猜测游戏
- 4. 宾果游戏Java服务器架构
- 5. RTS HTML5游戏多人游戏 - 开始node.js服务器游戏
- 6. 服务器为Android游戏
- 7. 多人游戏服务器
- 8. .NET游戏服务器
- 9. 创建游戏服务器
- 10. 用于侧面滚动空间射击游戏的Java游戏服务器
- 11. 基于在线多人游戏的游戏服务器技术?
- 12. 游戏服务器翻转计时器
- 13. 实时浏览器游戏服务器
- 14. PHP/MySQL的游戏服务器
- 15. 使用ExpressJS的游戏+ Web服务器
- 16. node.js或netty上的游戏服务器
- 17. 简单的游戏服务器命令
- 18. 游戏服务器的性能
- 19. JSF中的游戏服务器
- 20. REST基于WebAPI的游戏服务器
- 21. 简单的游戏服务器
- 22. 游戏服务器的C++ MySQL
- 23. 将游戏变成客户端 - 服务器游戏(Unity)
- 24. 如何将服务器与Java游戏启动器互连?
- 25. java中的二进制搜索猜谜游戏服务器端
- 26. 用于游戏登录/认证的Java Socket服务器
- 27. 带小应用程序的Java客户端 - 服务器游戏
- 28. Java网络游戏:如何列出可用的服务器?
- 29. 线程架构,游戏服务器
- 30. 游戏客户端/服务器语言
非常感谢!一直在寻找这样一本书! –
没问题。有关于MMO设计和东西的书籍很多。也许,(我不知道你住在哪里),如果你去参观当地的技术大学(计算机科学将是正确的领域),你可以在大学图书馆里抓住一些这类书籍。大多数大学还提供一个商店,在那里你可以购买或订购大部分商品。尝试一下。 (我在维也纳技术大学学习,今天看了一下游戏部分,有些可能有用,大多数其他大学也应该有。) – Stellarator