Java 使用不同的应用程序时,websocket聊天应用程序中未触发消息

Java 使用不同的应用程序时,websocket聊天应用程序中未触发消息,java,spring,websocket,Java,Spring,Websocket,我创建了一个spring引导应用程序,它保存控制器和websocket配置。为了进行测试,我在同一个应用程序中创建了html和angularjs文件 如果两个不同的用户登录。。他们可以聊天。工作正常 我用spring创建了一个web应用程序,并添加了html和angularjs页面。所以,一个用户登录web应用程序页面,另一个用户通过上一个应用程序(测试)登录并尝试聊天 web应用程序中的用户不能接收任何消息,这意味着用户通过测试页面可以接收消息 我的示例代码: package com.aghi

我创建了一个spring引导应用程序,它保存控制器和websocket配置。为了进行测试,我在同一个应用程序中创建了html和angularjs文件

如果两个不同的用户登录。。他们可以聊天。工作正常

我用spring创建了一个web应用程序,并添加了html和angularjs页面。所以,一个用户登录web应用程序页面,另一个用户通过上一个应用程序(测试)登录并尝试聊天

web应用程序中的用户不能接收任何消息,这意味着用户通过测试页面可以接收消息

我的示例代码:

package com.aghil.chat.controller;

import java.security.Principal;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Controller;

import com.aghil.chat.dto.ChatMessageDto;

@Controller
public class ChatMessageController {

    @Autowired
    SimpMessagingTemplate template;

    @MessageMapping("/chat")
    public void greeting(Message<Object> message, @Payload ChatMessageDto chatMessage) throws Exception {
        System.out.println("Stomp client called");
        Principal principal = message.getHeaders().get(SimpMessageHeaderAccessor.USER_HEADER, Principal.class);
        String authedSender = principal.getName();
        chatMessage.setSender(authedSender);
        String recipient = chatMessage.getRecipient();
        System.out.println("authedSender : "+authedSender +" --- recipient :: "+recipient);

        if (!authedSender.equals(recipient)) {
            template.convertAndSendToUser(authedSender, "/queue/messages", chatMessage);
        }

        template.convertAndSendToUser(recipient, "/queue/messages", chatMessage);
    }

}

JS:

 function connect() {
            var socket = new SockJS('/chat');
            stompClient = Stomp.over(socket);
            stompClient.connect({}, function(frame) {
                setConnected(true);
                console.log('Connected: ' + frame);
                stompClient.subscribe('/user/queue/messages', function(greeting){
                    showMessage(greeting.body);
                });
            });
        }
 function sendMessage() {
            var recipient = document.getElementById('recipient').value;
            var message = document.getElementById('message').value;
            var date = new Date();
            var time = date.toISOString();

            stompClient.send("/app/chat", {}, JSON.stringify({ 'sender': '', 'recipient': recipient, 'message': message, 'time': time }));
        }



function showMessage(message) {
            var jsonResponse = JSON.parse(message);

            var response = document.getElementById('response');

            if(jsonResponse.message !== "New Chat Request") {
                var eachMgsDiv = document.createElement('div');

                eachMgsDiv.setAttribute('class','col-sm-12 ng-scope');

                var recipient = document.getElementById('recipient').value;

                if(jsonResponse.recipient === recipient) {
                    eachMgsDiv.innerHTML = myMgsTmpPrt1 + jsonResponse.sender + myMgsTmpPrt2  + myMgsTmpPrt3 + jsonResponse.message + myMgsTmpPrt4 + new Date(jsonResponse.time) + myMgsTmpPrt5;
                }
                else {
                    eachMgsDiv.innerHTML = othersMgsTmpPrt1 + jsonResponse.sender + othersMgsTmpPrt2 + othersMgsTmpPrt3 + jsonResponse.message + othersMgsTmpPrt4 + new Date(jsonResponse.time) + othersMgsTmpPrt5;
                }

                response.appendChild(eachMgsDiv);
            }
package com.aghil.chat.controller;
导入java.security.Principal;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.messaging.Message;
导入org.springframework.messaging.handler.annotation.MessageMapping;
导入org.springframework.messaging.handler.annotation.Payload;
导入org.springframework.messaging.simp.SimpMessageHeaderAccessor;
导入org.springframework.messaging.simp.SimpMessagingTemplate;
导入org.springframework.stereotype.Controller;
导入com.aghil.chat.dto.ChatMessageDto;
@控制器
公共类聊天信息控制器{
@自动连线
SimpMessagingTemplate;
@消息映射(“/chat”)
公共无效问候语(消息消息,@Payload ChatMessageDto chatMessage)引发异常{
System.out.println(“调用Stomp客户端”);
Principal Principal=message.getHeaders().get(SimpMessageHeaderAccessor.USER_头,Principal.class);
字符串authedSender=principal.getName();
chatMessage.setSender(authedSender);
字符串recipient=chatMessage.getRecipient();
System.out.println(“authedSender:+authedSender+”---收件人::“+recipient”);
如果(!authedSender.equals(收件人)){
template.convertAndSendToUser(authedSender,“/queue/messages”,chatMessage);
}
template.convertAndSendToUser(收件人,“/queue/messages”,聊天信息);
}
}
JS:
函数连接(){
var socket=new SockJS('/chat');
stompClient=Stomp.over(套接字);
stompClient.connect({},函数(框架){
setConnected(true);
console.log('Connected:'+frame);
stompClient.subscribe('/user/queue/messages',函数(问候语){
showMessage(greeting.body);
});
});
}
函数sendMessage(){
var recipient=document.getElementById('recipient')。值;
var message=document.getElementById('message')。值;
变量日期=新日期();
var time=date.toISOString();
stompClient.send(“/app/chat”,{},JSON.stringify({‘发件人’:''‘收件人’:收件人,'message':消息,'time':time}));
}
函数showMessage(消息){
var jsonResponse=JSON.parse(消息);
var response=document.getElementById('response');
if(jsonResponse.message!=“新建聊天请求”){
var eachMgsDiv=document.createElement('div');
eachMgsDiv.setAttribute('class','col-sm-12 ng scope');
var recipient=document.getElementById('recipient')。值;
if(jsonResponse.recipient==收件人){
eachMgsDiv.innerHTML=mymgstmprt1+jsonResponse.sender+mymgstmprt2+mymgstmprt3+jsonResponse.message+mymgstmprt4+新日期(jsonResponse.time)+mymgstmprt5;
}
否则{
eachMgsDiv.innerHTML=othersMgsTmpPrt1+jsonResponse.sender+othersMgsTmpPrt2+othersMgsTmpPrt3+jsonResponse.message+othersMgsTmpPrt4+新日期(jsonResponse.time)+othersMgsTmpPrt5;
}
响应。追加子项(每个HMGSDIV);
}

您能提供任何代码示例吗?感谢您查看问题..我将示例代码粘贴在这里。。