Browser 应用程序即时消息

Browser 应用程序即时消息,browser,mobile-application,instant-messaging,spring-rest,Browser,Mobile Application,Instant Messaging,Spring Rest,我正在使用SpringMVC开发一个web和移动应用程序,但我在理解不同的协议和工具来制作即时消息(如网站中的facebook消息或whatsapp即时通知)时遇到了问题。除了在项目中聊天之外,还有一个功能是用户发送请求,然后等待其他用户响应并立即通知他们) 然而,我迷路了,因为有人说在手机上使用GCM或FCM,还有人说还有其他协议,比如STOMP和AQMP,还有其他一些协议。我不知道在我的rest api中应该看到和使用什么,这样它就可以在考虑性能和其他问题的同时为浏览器和手机工作,以及如何从

我正在使用SpringMVC开发一个web和移动应用程序,但我在理解不同的协议和工具来制作即时消息(如网站中的facebook消息或whatsapp即时通知)时遇到了问题。除了在项目中聊天之外,还有一个功能是用户发送请求,然后等待其他用户响应并立即通知他们)

然而,我迷路了,因为有人说在手机上使用GCM或FCM,还有人说还有其他协议,比如STOMP和AQMP,还有其他一些协议。我不知道在我的rest api中应该看到和使用什么,这样它就可以在考虑性能和其他问题的同时为浏览器和手机工作,以及如何从客户端使用这些消息(我的意思是,使用方法是否会因所选协议而异?)。我是否应该根据请求的来源使用多个协议和工具(例如,如果是mobile和Android-->GCM或FCM,如果是browser STOMP,例如,如果iOS-->不知道使用什么)


我知道这看起来像一个一般性的问题,但我真的迷路了,特别是我不知道这些天应该从什么开始选择正确的东西。

消息传递堆栈由多个组件组成。其中之一是消息传输—用于在服务器和客户端之间传递消息。在此上下文中,FCM/GCM/APNS是传输协议

GCM被弃用,取而代之的是FCM。FCM将适用于Android、最新版本的iOS,甚至一些浏览器。但是,如果用户禁用应用程序的通知,消息将停止工作。推送通知也存在一些不可预测的延迟,特别是如果您希望发送大量消息,如键入通知

消息格式是堆栈的另一个组件。例如,STOMP是消息格式协议。它是为任何串行传输定义的,即可以通过FCM、TCP或websocket使用

考虑到您提出的问题,编写自己的消息堆栈似乎完全不切实际。只需从货架上挑选一些东西,比如百万台XMPP服务器中的一台,或者像Tinode这样更现代的服务器。谷歌