有没有懂sse的大佬,为啥eventSource.onmessage总是执行不到?

484 阅读1分钟

有没有懂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);
    }
}