考虑JavaEE项目的Web Socket

时间:2014-11-03 07:21:48

标签: node.js java-ee jboss websocket glassfish

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

我一直在阅读网络套接字,认为这是解决此问题的完美解决方案(我不喜欢轮询)。

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

  1. Web Socket似乎支持Glassfish服务器,而不是最新版本的JBoss / Wildfly。
  2. 如果1000个客户端使用Web Socket登录并连接到服务器,那么服务器是否为每个连接打开了1000个单独的套接字?或者是类似于Node.js的实现,其中单个服务器套接字用于所有客户端连接。 JavaEE教程中似乎没有记录这些信息。

1 个答案:

答案 0 :(得分:1)

Websocket是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相同。