对不起,你必须读两遍。
我目前有一个在端口80上侦听的Apache2,以及一个在更高的未注册端口(50214)上运行的自制游戏服务器。 我用JavaScript重写了这个游戏,并计划通过80端口上的websockets发送networking通信,以避开许多公司和大学所采用的防火墙。
我将如何去configuration一个websocket服务器来侦听80上的websocket连接,并解压缩它们并将它们转发到在50214上侦听的游戏服务器,而不会干扰apache?
我应该使用什么websocket服务器实现? 这通常如何完成? 帮助一个noob。 感谢sf。
您不能有两个服务在同一个端口上侦听,所以您将需要第二个IP地址。
老实说,如果我正在实现这一点,我只是在前端使用Apache,使用mod_proxy代理您的游戏请求通过您的自定义服务器,只能在本地主机上侦听。 这将消除有两个IP地址的必要性。
一个想法:在现有的apache实例中设置一个虚拟主机,并在那里设置一个AJAX响应器,用PHP,Python或[你最喜欢的语言]编写。 您的javascript客户端代码会将AJAX调用到您的apache虚拟主机,并且AJAX响应者会将您需要的任何调用都发送给您的其他服务器以满足客户端请求。
看看反向HTTP代理 !
它几乎只是将不同的请求redirect到特定的端口,你可以例如:
example.com/wsredirect到端口8001,其余的为8000 例如,查看node-http-proxy ,它非常易于使用,甚至还有一个简单的通过socket.io的websocket示例(当然,您可以使用任何您喜欢的ws服务器)。
编辑:另外Apache的mod_proxy模块可能值得检查,作为替代(更新版本的Apache也支持mod_proxy_wstunnel模块)。