结合 JavaScript、Websockets 和 Java

Posted

技术标签:

【中文标题】结合 JavaScript、Websockets 和 Java【英文标题】:Combination JavaScript, Websockets and Java 【发布时间】:2015-07-12 09:52:35 【问题描述】:

我是 Websockets 的新手,我想做一个多人乒乓游戏。我在客户端使用带有 websockets 的 javascript 和在服务器端使用 WebsocketEndpoint (Glassfish-Server),但我想知道这是否是一个好的销售。据我发现,在使用这种组合时很难将数据推送给客户端。经过一番搜索,我发现了 Netty 框架,据说它是此类应用程序的一个很好的解决方案。问题是:在我的研究期间,我从未见过任何 JavaScript 客户端到这样的 Netty 应用程序。这可能吗?

简而言之: 我想要实现的是: - 在客户端使用 Javascript 和 websockets - 在服务器端使用 Java

有人有这方面的经验吗?

提前致谢。

【问题讨论】:

试试Atmosphere js可能对你有帮助。 【参考方案1】:

一般描述的架构对我来说听起来不错,即 websocket 服务器和 javascript websocket 客户端。如果您对 Glassfish 感到满意,我会选择它。

您也可以使用 Netty 来实现相同的功能,因为它对 WebSockets 具有出色的支持,并且除了您的 Glassfish 实现之外的任何东西之外,相同的 JavaScript 客户端应该与 Netty WebSocket 服务器一起使用。

如果您决定追求 Netty 服务器的角度,请查看Netty WebSocket example。该示例适用于 Netty 3(我仍在使用),但 Netty 4 是使用最广泛的,而 Netty 5 是最新最好的。该示例提供了一个基本的 javascript 客户端,但正如我所说,如果您已经编写了一个,我会假设它可以无缝运行。

【讨论】:

谢谢。这对我帮助很大。我还有一个相关的问题:现在,我的游戏的所有计算都在一个客户端上完成,并通过服务器发送到另一个客户端。我认为,更好的解决方案是计算服务器上的所有内容并将结果推送到两个客户端(以防止操纵并保持两个客户端同步)。为此,我需要服务器上的游戏循环并将消息推送到客户端。您有任何经验如何实现这一目标吗?在使用WebsocketEndpoint时,我只有三种方法:一种是打开连接,一种是关闭,一种是收到消息。 ??您应该有一个服务器端发送指令。 (参见 netty 示例)您可以实现一个计时器来定期向所有客户端或其他事件发送更新。 Websockets 是双向的。 糟糕,我脑子里有一个缺陷。当然,你是对的。我找到了解决方案。非常感谢。

以上是关于结合 JavaScript、Websockets 和 Java的主要内容,如果未能解决你的问题,请参考以下文章

八网页版消息推送SDK-WebSockets

python 将websockets与龙卷风结合起来,龙卷风用于控制

通过 websockets 使用 javascript 传输文件

JavaScript 和 WebSockets:使用特定协议

C# Websockets 将序列化列表发送到 javascript

javascript中的Websockets,页面刷新或导航到其他页面时连接终止[重复]