我正在为ipad,iphone应用程序制作游戏服务器。 这是一个双人纸牌游戏,但任何两个玩家之间可能会有多场比赛。
经过很多论坛和博客后,我决定使用nodeJS和mongo-db组合。
现在我对两者都很陌生,但我有时间学习这些东西,而且我在JS方面有相当丰富的经验。
我不确定的是,如果我的客户端是iOS和Objective-C堆栈。 什么是TCP中的最佳方法,使用REST和WebSockets的HTTP考虑,
如果你觉得我不应该首先使用nodeJS,请指出我正确的方向,因为我还没有开始。
答案 0 :(得分:0)
如果你正在考虑使用iOS,那么WebSockets是不行的 - 我相信你不希望用一个大的UIWebView制作你的整个游戏。
TCP:嗯,这是一个有趣的问题。普通TCP通常比HTTP具有更小的开销,因为没有avket标头/等。是必需的,但实现自己的协议是一个更大的挑战,应该是编写游戏的必要条件,你最终会遇到与速度/性能相关的HTTP相同的陷阱。此外,您可以在Unix上使用它进行TCP网络连接的BSD套接字API乍一看并不明显。但是,如果您决定使用TCP,那么这是我的API的OO包装器:http://github.com/H2CO3/TCPHelperHTTP:ypu应该选择它。它有着悠久的历史,它是一个非常成熟的协议,并且有相当多的高质量C和Objective-C库。 Cocoa(Touch)有NSURL *类的Objective-C类,你也有c的libCURL。
在服务器端,您可能还希望隐式地使用HTTP作为现代服务器并自动支持它,而您不必乱用协议来发送消息,而只是简单地说
<?php echo "Hello World"; ?>
同样,如果你想深入挖掘,你可以在服务器端使用WebSockets,如果你要使用普通的TCP。
我希望这会有所帮助。