gpt4 book ai didi

sockets - Java EE 应用程序 : TCP Server + Web Interface

转载 作者:行者123 更新时间:2023-12-03 00:02:55 24 4
gpt4 key购买 nike

我需要实现一个 TCP 服务器,其中包含用于管理的 Web 界面。

基本上,tcp 服务器将监听新连接并保持当前连接处于事件状态,而 Web 界面允许我查看有关这些连接的信息并与它们交互(例如发送消息和查看收到的消息)...

我的担忧在于“TCP 服务器”与 Web 应用程序的集成。对于收到的消息,我可以简单地使用共享数据库,但我需要将消息发送到连接到 TCP 服务器的对等点。

目前我最好的选择是 JCA。一些研究给我指出了一个很好的样本:http://code.google.com/p/jca-sockets 。该示例使用消息驱动 Bean 来处理通过端口 9000 接收的消息,充当回显服务器。

我是 Java EE 6 世界的新手。我试图找出示例中为什么以这种或另一种方式完成事情(例如为什么使用 MDB?)。

JCA 有一个相当复杂的规范。因此,我首先尝试调整上面的示例,以保持连接处于事件状态以交换数据。我的下一步将调整它以通过 servlet 接受字符串,并将其转发给给定的对等点。

有人可以帮我解决这个问题吗?

最佳答案

首先,将 Java EE 与 TCP 结合使用并不是您可能使用的最佳方法。如果您只需要一个带有 Web UI 的简单 TCP 服务,您最好考虑使用附加了一些 Web 容器的 Java SE(undertow 效果很好)。

另一方面,如果您需要将应用程序集成到公司现有的 Java EE 基础设施中,JCA 将是最好的方法。虽然它不是为此类事情而设计的,但 JCA 是唯一一个足够自由的 EE 子系统,可以进行 TCP 网络工作所需的线程管理。

您上面提到的 JCA-Socket 不是 JCA 应用程序的最佳示例。它通过阻塞 WorkManager 线程来使用普通 Java 的阻塞套接字,这不是很有效。现在情况好多了,我们有 Java NIO 和 Netty 来实现高效的原始网络工作。我有一个JCA connector for TCP interactions这可能会为您提供构建自己的框架。请随意扩展和贡献。

附注关于MDB:消息驱动bean 是异步传入消息处理的唯一“合法”JCA 方法。由于 TCP 是异步的,因此您的应用程序中肯定需要一个 TCP 才能开始工作。输出数据传输通过您将注入(inject)到 bean 中的各种 ConnectionFactory 接口(interface)进行。上面的链接将为您提供引用 ConnectionFactory 实现以及利用 ConnectionFactory 和 MDB 消息传递方法的简单测试器应用程序。

关于sockets - Java EE 应用程序 : TCP Server + Web Interface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9416341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com