使用Websockets在两个JAVA web应用程序之间进行通信

communication between two JAVA web applications using Websockets

本文关键字:应用程序 web 之间 通信 JAVA 两个 Websockets 使用      更新时间:2023-09-26

我有一个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不是这类任务的理想解决方案