我有一个通过套接字正常工作的多人游戏,但我有兴趣通过网页和Javascript添加观众视图(和聊天)。
我只需每隔几秒就向网页发送几个字节的信息,然后当然是与游戏服务器之间的聊天消息(他们必须登录才能发送消息)。
我可以使用websockets吗?它们与普通插座兼容吗?我还可以使用其他什么方法? (我不想使用数据库轮询)
答案 0 :(得分:1)
您可以在Java应用程序中使用httpserver来共享信息。这很简单 - 只需几行代码。当然,您的计算机应该可用于其他带有Web浏览器的计算机。
这是通信客户端到服务器的一种方式。如果您需要双向通信,您仍然需要遵守http规则(不是因为Java,而是因为您使用浏览器作为客户端)。
我在这做什么。在JavaScript开放连接中,它可以是任何东西 - 新的JavaScript动态对象的AJAX,图像,JavaScript源代码(这就是我所做的)。在服务器端打开但不关闭连接 - 等到你有东西要发送。当你拥有它 - 发送它。浏览器将在这个时刻拥有它。干净利落。但是,有必要的技巧:如果服务器等待很长时间(2分钟)浏览器关闭连接。在这种情况下,您的JavaScript应该准备好并再次发出相同的请求。它重复了。在服务器端,您的连接将被关闭,但新的连接将被打开,它将在您准备好后等待。还有一个技巧 - 当你从浏览器端发出新请求时 - 不要忘记缓存。要从缓存中获得相同的答案,请添加对请求唯一的内容。例如,当前时间作为参数。