我在服务器和客户端之间有一个 WebSockets 连接。这使我可以向客户发送命令,他会用数据回应我。服务器也有网络服务。然后我可以说,“在那个客户端上执行这个命令”。所以我们有:
Client1 ---webservices--> 服务器 ---websockets---> Client2
问题是,从 Client2 接收数据的服务器上的方法是void。
如何将数据发送回 Client1 ?
网页服务:
@Path("/ws")
public class QOSResource {
public QOSResource(){}
@Produces(MediaType.TEXT_PLAIN)
@Path("/ping/{macAddr}")
@GET
public String getPing(@PathParam("macAddr") String macAddr){
return"Mac adresse : "+macAddr;
//WebSocketsCentralisation.getInstance().ping(macAddr);
}
}
网络套接字
@OnWebSocketMessage
public **void** onText(Session session, String message) {
if (session.isOpen()) {
if(firstConnection){
firstConnection = false;
this.macAddr = message;
WebSocketsCentralisation.getInstance().join(this);
}
ObjectMapper mapper = new ObjectMapper();
Object o;
try {
o = mapper.readValue(message, Object.class);
if(o instanceof PingResult){
**// TODO return result to ws**
}
} catch (JsonParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在此先感谢您的帮助