Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理断开连接的对等WebSocket(Java)和#x2B;跺脚+;WebRTC_Java_Websocket_Webrtc_P2p_Stomp - Fatal编程技术网

处理断开连接的对等WebSocket(Java)和#x2B;跺脚+;WebRTC

处理断开连接的对等WebSocket(Java)和#x2B;跺脚+;WebRTC,java,websocket,webrtc,p2p,stomp,Java,Websocket,Webrtc,P2p,Stomp,目前,我必须参与一个与P2P消息呼叫应用程序相关的项目。因此,通常在客户端,我使用WebRTC的API。在后端,除了让两个对等方互相交谈外,我还需要处理呼叫的每个阶段的逻辑,即向适当的客户端发送响应消息。我想使用WebSocket作为对等方的信令服务器,从开始到两个对等方之间的呼叫结束有很多阶段,例如:请求、运行、断开连接、挂断等等。因此,即使在信令过程之后,我仍然需要打开WebSocket连接来检查断开情况,但是,我不太清楚当一个对等方从WebSocket断开连接时我能做什么,所以我仍然可以使

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

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

根据my,您可以通过侦听SessionDisconnectEvent来检测用户何时断开了连接

@Component
public class STOMPDisconnectEventListener implements ApplicationListener<SessionDisconnectEvent> {

    @Override
    public void onApplicationEvent(SessionDisconnectEvent event) {
        //event.getSessionId();
        // event.getUser();
    }
}
@组件
公共类STOMPDisconnectEventListener实现ApplicationListener{
@凌驾
Application event(SessionDisconnectEvent事件)上的公共无效{
//event.getSessionId();
//event.getUser();
}
}
我猜您会跟踪所有websocket会话id。然后,您可以根据会话id或getUser()确定哪个用户的会话已断开连接


您还可以收听SessionConnectEventSessionConnectedEventSessionSubscribeeEventSessionUnsubscribeeEvent事件。

您是否将websocket与STOMP一起使用?是的,没错。您可以收听各种事件来处理这些事件。您能更具体地说,谢谢。请查看下面我的回答谢谢你的回答,一旦我有更多的时间看这个问题,如果这个问题对我有效,我会接受这个答案。我在哪里可以找到SessionDisconnectEvent类?这是你自己实现的类吗?不是,不是我的实现。您可以在此处找到上述所有会话事件类:
org.springframework.web.socket.messaging.*
。抱歉,但如何实际使用该类侦听断开的事件?当连接终止(或断开)时,会发布SessionDisconnectEvent。您可以通过实现ApplicationListener接口或使用@EventHandler注释,像Spring引导中的任何其他事件一样侦听和处理此事件。