是否可以使用JavaScript进行实时网络游戏

时间:2010-10-09 22:31:52

标签: javascript network-programming

是否可以使用JavaScript制作实时网络游戏?我见过flash做的,但我有兴趣制作一款不依赖于任何插件的基于浏览器的多人游戏。我已经读过,不可能保持Ajax连接为流通信打开,并且每秒建立几个新的Ajax连接以保持客户端与服务器同步是不可行的。

6 个答案:

答案 0 :(得分:4)

看起来http://socket.io/是一个很好的解决方案。

答案 1 :(得分:4)

答案 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)

是的,并不像某些人似乎暗示的那样需要任何特殊的图书馆。