2011-11-07 65 views
0

我正在写一个线程/连接MMORPG服务器在Java中,我想知道,我应该使用普通的Socket类,并通过我自己的连接添加安全性(交换具有特定握手顺序的密钥?),还是使用SSLSocket类将客户端始终与服务器连接更好? 是否有任何基准或性能测试显示SSLSocket类的性能?MMORPG游戏服务器的Java SSLSocket

回答

1

大多数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

+0

非常感谢!一直在寻找这样一本书! –

+0

没问题。有关于MMO设计和东西的书籍很多。也许,(我不知道你住在哪里),如果你去参观当地的技术大学(计算机科学将是正确的领域),你可以在大学图书馆里抓住一些这类书籍。大多数大学还提供一个商店,在那里你可以购买或订购大部分商品。尝试一下。 (我在维也纳技术大学学习,今天看了一下游戏部分,有些可能有用,大多数其他大学也应该有。) – Stellarator

0

我非常怀疑MMO服务器会有额外的带宽可用来保持解密SSL数据包。我会使用SSL进行登录,然后降级到常规套接字。

+0

有降级到普通插座直接的方式?或者我应该重新连接客户端与处理程序或类似的东西? –

+0

好吧,无论如何你都需要重新连接。无论如何,你不打算让游戏服务器和登录服务器处于同一进程中,对吗? ... 你是...?好,我不认为你会让自己陷入这个陷阱! :-)(提示:这样做会导致大规模的缩放问题,所以不要陷入这个陷阱。)你的大部分数据都可能用UDP发送,所以你会有额外的套接字。 – corsiKa

+0

最后一个问题,你能给我任何好的书名吗?或者将我链接到这个主题的一些好的资源?即使我搜索了很长时间,我似乎也找不到多少:-(谢谢你的回答:-) –