我有一个Java Web应用程序(基于Servlet和JSP)在本地计算机上运行,具有使用HTML5和Java WebSocket api的聊天功能。 一个人可以与登录同一应用程序的其他用户聊天(使用两个不同的浏览器)。
我已经创建了相同项目(Web应用程序)的副本,并更改了所需的配置以将其作为其他Web应用程序运行。 我要的是一个登录用户(例如web-app1)可以与登录到web-app2的用户聊天。
这是ServerEndpoint批注的代码段和连接到Websocket端点的JavaScript代码
@ServerEndpoint(value = "/chat/{sessionId}",
encoders = ChatMessageCodec.class,
decoders = ChatMessageCodec.class,
configurator = ChatEndpoint.EndpointConfigurator.class)
@WebListener
public class ChatEndpoint implements HttpSessionListener
{
.....
.......................
var server;
try {
server = new WebSocket('ws://' + window.location.host +'<c:url
value="/chat/${chatSessionId}" />');
server.binaryType = 'arraybuffer';
}
catch(error) {
modalErrorBody.text(error);
modalError.modal('show');
return;
}
我是Java Web开发的新手,此Web应用程序是我关注的书中的项目的一部分:|
我认为最好使用消息队列在两个或多个JVM之间进行通信。 WebSocket并非此类任务的理想解决方案