我正在使用spring mvc开发一个网络和移动应用程序,我在理解用于制作即时消息的不同协议和工具时遇到问题(例如网站中的facebook消息或whatsapp即时通知)。除了在项目中聊天之外的一个功能是用户发送请求并等待另一个用户做出响应并立即通知他们。
然而,我失去了原因,因为有人说将GCM或FCM用于移动设备,而其他人则说其他协议如STOMP和AQMP以及其他一些协议。我不知道在我的休息api中看到和使用什么,以便它可以兼顾浏览器和移动设备,同时考虑性能和其他问题以及如何从客户端使用这些消息(我的意思是消费方法因基于选择的协议?)。我应该根据请求的来源使用多种协议和工具(例如,如果是移动和Android - > GCM或FCM,如果是浏览器STOMP,例如iOS - >不知道要使用什么)。
我知道这看起来像是一个普遍的问题,但我特意迷失了,我不知道这几天选择什么是正确的选择。
答案 0 :(得分:0)
消息传递堆栈由多个组件组成。其中之一是消息传输 - 用于在服务器和客户端之间传递消息。在此上下文中的FCM / GCM / APNS是传输协议。
GCM已弃用,支持FCM。 FCM将适用于Android,最新版本的iOS,甚至一些浏览器。但是,如果用户禁用了应用程序的通知,则消息将停止工作。推送通知也有一些不可预测的延迟,特别是如果您想发送大量消息,如键入通知。
消息格式是堆栈的另一个组件。例如,STOMP是消息格式协议。它是为任何串行传输定义的,即可以通过FCM或TCP或websocket使用。
鉴于您提出的问题,您编写自己的消息堆栈看起来完全不切实际。只需从货架上挑选一些东西,比如百万XMPP服务器中的一个,或者像Tinode那样更现代的服务器。谷歌吧。