首页 > 解决方案 > 处理断开连接的对等 WebSocket(Java) + STOMP + WebRTC

问题描述

目前,我必须参与一个与P2P消息呼叫应用程序相关的项目。所以通常在客户端,我使用 WebRTC 的 API。而在后端,除了让 2 个对等方相互交谈之外,我还需要处理呼叫每个阶段的逻辑,即向适当的客户端发送响应消息。我想使用WebSocket作为对等点的信令服务器,从开始到结束2个对等点之间的调用有很多阶段,例如:请求,运行,断开连接,挂断等......所以我仍然需要即使在信号过程之后打开 WebSocket 连接以检查断开连接,但是,我不太清楚当对等方与 WebSocket 断开连接时我能做什么,所以我仍然可以使用 WebSocket 通知其他对等方,

更简洁地说,如何检测对等点何时与 WebSocket 服务器断开连接?你能给我一个简单的例子吗?非常感谢!

标签: javawebsocketwebrtcp2pstomp

解决方案


根据我的评论,您可以通过侦听 SessionDisconnectEvent 事件来检测用户何时断开连接。

@Component
public class STOMPDisconnectEventListener implements ApplicationListener<SessionDisconnectEvent> {

    @Override
    public void onApplicationEvent(SessionDisconnectEvent event) {
        //event.getSessionId();
        // event.getUser();
    }
}

我猜你会跟踪你所有的 websocket 会话 ID。然后,您可以根据会话 id 或 getUser() 确定哪个用户的会话已断开连接。

您还可以收听SessionConnectEventSessionConnectedEventSessionSubscribeEventSessionUnsubscribeEvent事件。


推荐阅读