简体   繁体   English

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

[英]How to restrict WebSocket server connection to only one?

For creating WebSocket server I have used Java-WebSocket library. 为了创建WebSocket服务器,我使用了Java-WebSocket库。 It looks like this , and it is working. 看起来像这样 ,并且正在工作。

But now I wish to upgrade, so server can have only one active client connection. 但是现在我希望进行升级,因此服务器只能有一个活动的客户端连接。
Is there some kind of option for doing this, or should I check all connections, and close all, non-first active, connections? 有什么选择吗?还是应该检查所有连接并关闭所有非第一个活动连接?

I have tried that like 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();
            }
        }
    }
}

But this closes all connections, and kills Websocket server. 但这会关闭所有连接,并杀死Websocket服务器。 What am I doing wrong? 我究竟做错了什么?

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM