如何将WebSocket服务器连接限制为只有一个?

时间:2014-01-10 13:43:02

标签: java websocket java-websocket

为了创建WebSocket服务器,我使用了Java-WebSocket库。看起来像this,它正在发挥作用。

但是现在我希望升级,因此服务器只能有一个活动的客户端连接 是否有某种选择,或者我应该检查所有连接,并关闭所有非首先活动的连接?

我试过这样的话:

@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服务器。我做错了什么?

1 个答案:

答案 0 :(得分:0)

尝试在onOpen()方法之外放置一个计数器,并将其初始化为0。 然后在onOpen()方法中,检查计数器是否为1.如果是,则关闭连接conn,否则递增计数器。