是否可以使用JavaScript制作实时网络游戏?我见过flash做的,但我有兴趣制作一款不依赖于任何插件的基于浏览器的多人游戏。我已经读过,不可能保持Ajax连接为流通信打开,并且每秒建立几个新的Ajax连接以保持客户端与服务器同步是不可行的。
答案 0 :(得分:4)
看起来http://socket.io/是一个很好的解决方案。
答案 1 :(得分:4)
使用WebRTC代替WebSockets访问对等和UDP。请参见此处:Does WebRTC use TCP or UDP?和WebRTC vs Websockets: If WebRTC can do Video, Audio, and Data, why do I need Websockets?
答案 2 :(得分:2)
WebSockets是浏览器中使用JavaScript实时(低延迟)网络的解决方案。为WebSocket API提供Flash有后备。
您可以在服务器上使用JavaScript并使用具有WebSockets连接器的http://RingoJs.org之类的东西。如果你使用这两个,你可以得到:
// SERVER
websocket.addWebSocket(context, "/websocket", function(socket) {
socket.onmessage = function(m) {
// message m recieved from server
};
socket.send('my message to the client');
});
// CLIENT
var ws = new WebSocket("ws://localhost/websocket");
ws.onMessage(function(m) {
// message m recieved from server
// do something with it
return;
});
ws.send('message to server');
答案 3 :(得分:0)
是的。研究一种名为Comet的技术(类似于类固醇的Ajax)。 Lift(一个Scala Web框架; Twitter和其他人使用它)具有出色的Comet支持内置。
答案 4 :(得分:0)
我知道没有插件的套接字只能在HTML5中使用
但您可以使用闪存来完成此任务。由于现在几乎每个浏览器都支持闪存,我认为没问题
还有一些hacks允许做同样的事情而没有一堆ajax调用。尝试找到长轮询。
希望它有所帮助
答案 5 :(得分:-1)
是的,并不像某些人似乎暗示的那样需要任何特殊的图书馆。