有没有懂sse的大佬,为啥eventSource.onmessage总是执行不到?代码如下:
const eventSource = new EventSource('http://127.0.0.1:8090/test/webflux');
eventSource.onmessage = function(event) {
const messageElement = document.createElement('div');
messageElement.textContent = event.data;
document.getElementById('messages').appendChild(messageElement);
};
下面是我的发送代码
public void sendMessageToUser(String userId, Object message) {
SseEmitter sseEmitter = userConnections.get(userId);
if (sseEmitter != null) {
try {
sseEmitter.send(SseEmitter.event()
.data(message));
log.info("给用户[{}]发送消息成功: {}", userId, message);
} catch (Exception e) {
log.error("给用户[{}]发送消息失败: {}", userId, e.getMessage(), e);
// 如果发送失败,尝试从map中移除失效的SseEmitter
removeSseConnection(userId, "发送消息失败");
}
} else {
log.info("用户[{}]的SSE连接不存在或已关闭,无法发送消息", userId);
}
}