我在java中开发了自己的客户端和服务器,并实现了长轮询通信。所以我的客户总是要求执行新的操作。如果服务器有新操作,那么他会将其发送给客户端。整个通信基于java-socket。现在我想放弃长轮询通信并实现服务器推送。在这种情况下,客户端将不再询问我的服务器。他只会等待通知。如果我的服务器有一个要执行的新操作,那么他将进行服务器推送。我的目标是节省客户端的时间。所以他不再发送任何请求了
问题1:是否可以在我的模型上实现服务器推送基于Java中的套接字?
问题2:如果是,我该如何实现服务器推送?
答案 0 :(得分:0)
如果我以正确的方式理解您的问题,您只需等待客户端上的传入数据。例如,使用DataInputStream.readUTF();此方法等待,直到ServerSocket使用方法DataOutputStream.writeUTF(String s)通过流推送一些数据。
答案 1 :(得分:0)
在服务器端:
...
DataOutputStream toClient = new DataOutputStream(socket.getOutputStream());
outToClient.writeBytes("event_xyz");
...
在客户端,你应该听取事件