0
我需要编写一个可以在客户端发送推送通知的应用程序。但是有时客户端会断开连接,所以我想要存储通知并在重新连接时将它们发送给客户端。确保收到消息
有没有办法做到这一点? 我需要一种方法在发送之前知道客户端是否存在,或者知道是否收到通知的方式。 而我的通知是客户特定的。
我不能炫耀大量的代码,但我想用这样的:
@Autowired
private SimpMessagingTemplate messagingTemplate;
public void sendPush(Long clientId) {
messagingTemplate.convertAndSendToUser(clientId, "/queue/reply", myMessage);
// -> how do I know if message is received ?
}
我用弹簧的WebSocket和跺脚端点。
谢谢!
您的客户是否有他们的系统上运行的客户端程序?你有没有对该代码的控制?如果是这样,你的阻力最小的路径是实现代码,当客户端连接时从服务器拉入(或请求)消息 - 应该已经在那里。那么服务器就会知道消息被推送了。 –
如果服务器不知道客户端何时收到推送消息,它是如何知道消息是否必须发送给客户端的? –
客户告诉服务器“嗨!我在这里!”当它连接。服务器然后说:“好的,在这里拿这些消息!”客户回复“好吧,我得到了他们,谢谢你!”服务器正在等待客户端告诉它它已收到消息,直到服务器不知道客户端是否收到消息。如果我寄给你一封信,而你不寄一封信,我怎么知道你收到了我寄给你的信?据我了解,这个问题与TCP通过UDP解决的问题相同。 –