Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何始终通过WebService调用相同的ServerSocket?_Java_Sockets_Serversocket_Outputstream_Webservice Client - Fatal编程技术网

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

Java 如何始终通过WebService调用相同的ServerSocket?,java,sockets,serversocket,outputstream,webservice-client,Java,Sockets,Serversocket,Outputstream,Webservice Client,我想了解一下这里的一个问题,让我解释一下情况,我有一个带有“java.net.ServerSocket”的端点,这个服务将在第一次通过webservice触发,(当这个端点被称为clientSocket时,它将等待连接) 当与客户端建立连接时,我需要保持此clientSocket始终处于打开状态,我需要保存此clientSocket以供webservice在其他调用中使用。下面我展示了一个使用端点记录用户状态的示例 @GET @Path("/register-presence/{use

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

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

@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执行各种操作

主要的问题是,我需要建立连接,在连接之后,我需要保存此连接,以便Web服务在其他时间使用


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

您的问题是您不知道如何使
clientSocket
成为“全局”或“足够共享”,以便将来所有传入的客户端连接都可以访问它,或者它是可访问的,但使用它在某种程度上“不起作用”?@TripeHound,因此,我需要使clientSocket始终可访问,但只能在这个Web服务中。。。当连接到客户端时,我需要保持此clientSocket打开以便始终使用,无论哪个设备调用该服务,我不想连接每个独立用户,我需要调用该服务的每个用户使用相同的clientSocket来执行操作。
@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";
}