2016-09-06 77 views
0

如何从客户端到服务器互联网回叫?我有用户,我在一些房间中加入了他们的连接。但我不知道他们什么时候会上网。我想回传他们的雕像,但我不知道如何。我的客户是Android手机。当客户端互联网关闭时,Socket.io

此功能不起作用。

socket.on("disconnect", function() { 
    var SocketRoom= socket.room; 
    socket.leave(SocketRoom); 
}); 

回答

2

客户端不能通过套接字连接发送消息,如果他们没有连接到网络/互联网了。你可能想检查超时。

一旦客户端连接到服务器,服务器就会以固定的时间间隔(如每5秒)向客户端发送一条消息。 如果客户端响应该消息,你知道,它仍然是conenct并继续你的程序逻辑。 如果客户没有回复您的消息,那么他们很可能不再连接到互联网(或因其他原因无法访问)。如果是这种情况,你可以强迫他们离开房间(就像你的socket.on("disconnect", ...)功能)。

请注意:

  • 越高的超时间隔,则不太精确是实际的断开连接时间,但连接的负荷抑制得较低。
  • 如果客户端没有响应超时检查,您可能需要重试在强制关闭连接之前多次向该客户端发送消息。
+0

好吧这很好。但是......我需要关于学习连接的关键结果。如果我发送每0.1-0.5秒我的服务器工作不好,认为我有很多连接。我怎样才能发送信号?如果我用这种方式,我的服务器回答得太晚了吧?有没有办法呢?我现在正在使用它,但我需要一个比你的想法更好的主意。但你是对的。如果我发送一个信号从服务器到客户端,客户端不回答我的意见是错误的权利... –

+1

不,这是不可能的,据我所知。如果您丢失了互联网连接,则不能向服务器发送任何消息。 ;) 虽然可以增加超时时间,但在大多数情况下,1-2秒都可以。 – RicoBrassers

+0

好吧,我现在使用这种方式:)只是要求它。我认为有这样一个方法:D :)但我们会看到..因为信号强奸我的服务器,你知道:) –

相关问题