如何进行服务器推送

时间:2015-08-13 09:28:32

标签: java server long-polling

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

在服务器端:

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

在客户端,你应该听取事件