Web applications 与多个持久进程对话的Web服务器

Web applications 与多个持久进程对话的Web服务器,web-applications,Web Applications,我将首先描述我想要实现的功能,然后我认为我的技术问题是什么 功能:我想为IGS(Internet Go服务器)创建一个HTML/JavaScript客户端。它类似于FICS(免费互联网国际象棋服务器),因为游戏是通过telnet完成的,所有图形客户端都只是原始协议的包装。我的目标是能够在不添加任何web浏览器(无Java、Flash等)的情况下玩游戏 技术问题:我看到的最大问题是服务器端。为了启动游戏,web服务器必须打开IGS的持久套接字,并使用它发送和接收数据。(每个玩家都需要一个新的连接。

我将首先描述我想要实现的功能,然后我认为我的技术问题是什么

功能:我想为IGS(Internet Go服务器)创建一个HTML/JavaScript客户端。它类似于FICS(免费互联网国际象棋服务器),因为游戏是通过telnet完成的,所有图形客户端都只是原始协议的包装。我的目标是能够在不添加任何web浏览器(无Java、Flash等)的情况下玩游戏

技术问题:我看到的最大问题是服务器端。为了启动游戏,web服务器必须打开IGS的持久套接字,并使用它发送和接收数据。(每个玩家都需要一个新的连接。)这与web开发中使用的CGI思维方式有很大不同


我想到的一个解决方案是web服务器为每个播放器分叉一个进程,该进程将管理套接字并通过DB与web服务器通信。这听起来不太吸引人(间接、投票等等)。因此我的问题是:这种问题的标准解决方案是什么?

用于通过http在客户端和服务器之间发送消息的Check out()。您需要某种方式在客户端之间进行移动通信。

如果我理解正确,这意味着浏览器必须运行Java?如果是,那么这正是我不想做的。对不起,不是。Socket.IO可以使用各种方法并返回到支持的功能。可能的传输方式有WebSocket、adobeflashsocket、AJAX长轮询、AJAX多部分流、永久Iframe、JSONP轮询。如果未启用WebSocket或Flash,ajax长轮询应该可以工作。哦,我单击了所有链接,但最重要的链接除外:-)不过,socket.IO在浏览器和web服务器之间进行对话时仍然可以工作,对吗?我不能只打开一个到任意服务器的套接字(除非它支持socket.IO的传输模型,而IGS不支持)。但是,我似乎可以将使用真实套接字的进程分叉到IGS,使用socket.IO的进程分叉到浏览器,完全跳过web服务器(进程分叉除外)。这就是你的意思吗?经过一个简短的测试,一切都很好。甚至不需要分叉进程,因为node.js使所有套接字保持打开状态。谢谢