После ввода и отправки сообщения оно отображается на вкладке консоли, но не отражается в приложении чата, также возникает исключение как:
org.springframework.messaging.converter.MessageConversionException:
Я не могу устранить эту ошибку. Пожалуйста, помогите.
Код: Выделить всё
Real Time Chat Application
Real-Time Chat Application
Send
function setConnected(connected) {
document.getElementById("sendMessage").disabled = !connected;
}
function connect() {
let socket = new SockJS('/chat');
stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
setConnected(true);
stompClient.subscribe('topic/messages', function(message) {
showMessage(JSON.parse(message.body));
});
});
}
function showMessage(message){
let chat=document.getElementById('chat');
let messageElement=document.createElement('div');
messageElement.textContent=message.sender+':'+ message.content;
messageElement.class="border-bottom mb-1";
chat.scrollTop=chat.scrollHeight;
}
function sendMessage(){
let sender=document.getElementById('senderInput').value;
let content=document.getElementById('messageInput').value;
let chatMessage={
sender:sender,
content:content
}
stompClient.send("/app/sendMessage",{},JSON.stringify(chatMessage));
document.getElementById('messageInput').value='';
}
document.getElementById('sendMessage').onclick=sendMessage;
window.onload=connect;
Код: Выделить всё
//Controller class code
package com.chat.main.controller;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import com.chat.main.model.ChatMessage;
@Controller
public class ChatController {
@MessageMapping("/sendMessage")
@SendTo("/topic/messages")
public ChatMessage sendMessage(ChatMessage message) {
return message;
}
@GetMapping("/chat")
public String chat() {
return "chat";
}
}
Код: Выделить всё
//Websocket configuration code
package com.chat.main.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer{
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/chat")
.setAllowedOrigins("http://localhost:8080")
.withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/topic");
registry.setApplicationDestinationPrefixes("/app");
}
}
Приложение чата
Контроллер
Конфигурация веб-сокета
Подробнее здесь: https://stackoverflow.com/questions/793 ... tion-in-ch
Мобильная версия