考虑JavaEE项目的Web Socket

问题描述 投票:1回答:1

项目的要求是:如果任何用户更新记录(任何记录),必须通过在网页的某处显示警报立即通知所有相关方。在以前的项目中,浏览器会每隔N秒轮询服务器以查找任何相关更改。

我一直在阅读websockets并认为这是解决这个问题的完美解决方案(我不喜欢轮询)。

我对JavaEE中的Web套接字有一些疑问。如果我错了,请纠正我。

  1. Glass Socket似乎支持Glassfish服务器,而不是最新版本的JBoss / Wildfly。
  2. 如果1000个客户端使用Web Socket登录并连接到服务器,那么服务器是否为每个连接打开了1000个单独的套接字?或者是类似于Node.js的实现,其中单个服务器套接字用于所有客户端连接。 JavaEE教程中的任何地方似乎都没有记录此信息。
node.js java-ee jboss websocket glassfish
1个回答
1
投票

Websockets是TCP连接,websocket协议只是TCP协议的升级,其握手程序类似于http协议,但websocket协议是双向的。我不认为你在Node.js中获得一个Web套接字。无论如何,每个已记录的客户端都有连接。在Node.js中,您有广播,但这与通过相关Web套接字向任何已记录的客户端发送消息相同。您在glassfish中具有相同的功能,您只需在所有Web套接字上循环:

http://www.byteslounge.com/tutorials/java-ee-html5-websockets-with-multiple-clients-example

你可以在weblogic中做同样的事情:

https://docs.oracle.com/middleware/1212/wls/WLPRG/websockets.htm#WLPRG872

这与没有任何包装器的Node.js相同。

© www.soinside.com 2019 - 2024. All rights reserved.