0
用于创建WebSocket服务器我已经使用了Java-WebSocket库。它看起来像this,它正在工作。如何限制WebSocket服务器连接只有一个?
但现在我想升级,所以服务器只能有一个活动的客户端连接。
有没有这样做的选择,或者我应该检查所有连接,并关闭所有非首先激活的连接?
我已经试过,像这样:
@Override
public void onOpen(WebSocket conn, ClientHandshake handshake)
{
System.out.println("WebSocketServer::onOpen()");
boolean first = true;
Collection<WebSocket> con = this.connections();
synchronized(con) {
for (WebSocket c : con) {
if (first && c.isOpen()) {
first = false;
} else {
c.close();
}
}
}
}
但这关闭所有连接,并杀死的WebSocket服务器。我究竟做错了什么?
不,这不起作用,因为问题有点大。如果我在'onOpen()'方法中关闭了所有连接(又名:拒绝所有连接),则WebSocket服务器被终止(首先运行onError,然后onClose,然后再次运行onError)。 –
也许是因为你关闭了一个尚未打开的套接字? –
如何检查?如果我们发现,如何拒绝所有关系,那么我将知道如何关闭特定关系,或者关闭除特定关系以外的所有关系...... –