如何进行服务器推送

How can I make a server push

我在 java 开发了自己的客户端和服务器,并实现了长轮询通信。所以我的客户总是会要求执行新的操作。如果一个服务器有一个新的操作,那么他会把它发送给客户端。整个通信基于 java-sockets。现在我正在考虑放弃长轮询通信并实施服务器推送。在这种情况下,客户端将不再询问我的服务器。他只会等待通知。如果我的服务器有新的操作要执行,那么他就会做一个server-push。我的目标是在客户端节省时间。所以他不会再发送任何请求了

问题 1:是否可以基于 Java 中的套接字在我的模型 上实现服务器推送?

问题2:如果是,如何实现服务器推送?

如果我以正确的方式理解你的问题,你只需要等待客户端上的传入数据。例如 DataInputStream.readUTF();此方法一直等到 ServerSocket 使用方法 DataOutputStream.writeUTF(String s) 通过流推送一些数据。

在服务器端:

...    
DataOutputStream toClient = new DataOutputStream(socket.getOutputStream()); 
outToClient.writeBytes("event_xyz");
...

在客户端你应该监听事件