我目前正在创建一个将使用Websockets的Java Web应用程序。服务器将是一个注释为@ServerEndpoint
的Java类,名为Server.java
,客户端将是一个Web浏览器,所以我绝对会使用Javascript访问Websocket端点。
我需要一个Websocket,因为我想在服务器中的某些内容发生变化时通知客户端。我们有一个名为EventManager
的实用程序类,它管理子系统中发生的所有事件。我计划将Server.java
注册为EventManager
的从属关系,以便每当EventManager
有新内容时,它都会通知其所有家属这个特定事件发生。
这是好习惯吗?我想过使用AJAX /长轮询,但我认为需要遵守服务器到客户端的行为。此外,我没办法在数据库中获取事件,我必须依靠EventManager
来通知我的Websocket端点。
我想要的示例场景:
客户A连接到Server.java
客户B连接到Server.java
(到目前为止,将有两个会话处于活动状态)
EventManager
检测到一个事件并通知Server.java
的所有实例。
Server.java
向所有活动的Websocket会话发送消息。
浏览器使用Javascript检索通过Websocket发送的数据并显示它。
我被告知要使用Node.js,但我仍在推动Java实现:
EventManager
课程将会变得如此痛苦
Node.js的Javascript 答案 0 :(得分:3)
它将以您的建议方式运作。一些指示:
Client A
和Client B
可能会连接到不同的http进程。以下是使用websockets的多个服务器的聊天服务器的sample implementation。