如何始终通过 WebService 调用相同的 ServerSocket?

问题描述

我想在这里解决一个问题的想法,让我解释一下情况,我有一个带有“java.net.ServerSocket”的端点,这个服务将通过webservice第一次触发,(当这个端点被称为clientSocket时将等待连接)

private ServerSocket serverSocket;
private Socket clientSocket;

@GET
@Path("/conect")
public String conect() throws IOException { 
    
    serverSocket = new ServerSocket(3242);      
    clientSocket = serverSocket.accept(); // I need to save this connection to use on all other calls to any other endpoint
    ...
    ...

当与客户端建立连接时,我需要让这个 clientSocket 始终打开,我需要保存这个 clientSocket 以供 web 服务在其他调用中使用。下面我展示了一个使用端点记录用户在线状态的示例。

@GET
@Path("/register-presence/{userId}")
public String registerPresence(@PathVariable("userId") Long userId){    
    
    ...
    ...

    OutputStream output = clientSocket.getoutputStream(); // I need to use the clientSocket here
    PrintWriter writer = new PrintWriter(output,true);

    writer.println("lUHXGbLOUaO4JczgkI2oXHTmuu/1Z0OYKQz6nYKyxw5xymw= ");
    writer.flush();
    
    return "ok";
}

调用某些端点时,我正在安装的这个系统将使用这个 clientSocket 来执行各种操作。

主要问题是我需要建立连接,连接后我需要保存这个连接以供webService其他时候使用。

只要连接处于活动状态,保存到 clientSocket 的连接就必须可用。 ClientSocket 将用于由多个不同设备进行的所有各种调用。这是我不知道如何解决的问题嘿嘿。有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)