处理断开连接的对等 WebSocket(Java) + STOMP + WebRTC

Handle disconnected peer WebSocket(Java) + STOMP + WebRTC

目前我要参与一个P2P消息通话app相关的项目。所以一般在客户端,我使用WebRTC的API。在后端,除了让 2 个对等点相互交谈外,我还需要处理调用每个阶段的逻辑,即向适当的客户端发送响应消息。我想使用WebSocket作为peer的信令服务器,2个peer之间的通话从开始到结束有很多阶段,例如:请求,运行,断开连接,挂断等...所以我仍然需要打开一个 WebSocket 连接,即使在信令过程之后检查断开连接,但是,我不太清楚当一个对等点从 WebSocket 断开连接时我能做什么,所以我仍然可以使用 WebSocket 通知另一个peer 了解它,或者在 peer 断开连接时处理一些逻辑,例如等待他在一个时间间隔内重新加入,等等...因为我是这个调用项目的新手,所以我需要帮助。

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

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

@Component
public class STOMPDisconnectEventListener implements ApplicationListener<SessionDisconnectEvent> {

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

我猜你一直在跟踪你所有的 websocket 会话 ID。然后可以根据session id或者getUser()判断哪个用户的session被断开了。

您还可以收听 SessionConnectEventSessionConnectedEventSessionSubscribeEventSessionUnsubscribeEvent 个事件。