RainBow

消息转发服务器
授权协议 GPLv3
开发语言 Python
所属分类 服务器软件、 JMS/消息中间件
软件类型 开源软件
地区 国产
投 递 者 白坚壁
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

RainBow是一个基于websocket的支持多种QOS的消息转发服务器及客户端SDK。使用RainBow可以让您业务逻辑与链接管理完美的分离开来,且可以继续使用您最熟悉的方式(HTTP)来接入业务逻辑。以下是概览图,绿色部份为RainBow的组成部份:

Rainbow overview

RainBow的特性

  • 负责长链接的维护:Rainbow与客户端的SDK将会自动维护长连接,管理打开、关闭、心跳等,无需开发者过多关心链接的细节。

  • 链接、业务逻辑分离:RainBow让开发者专注于业务逻辑开发,随时重启业务服务器而不会对已链接的客户端造成影响。

  • 消息转发:客户端通过阻塞的方式(SDK提供的方法)发送消息至Rainbow,Rainbow转发消息至业务服务器(通过http请求)。 业务服务器通过请求Rainbow的Http接口发送消息给客户端,Rainbow客户端SDK通过回调的方式传递消息给客户端处理。

  • QOS:通过多种QOS(参考MQTT的QOS)来保证客户端及服务器端的消息送达。

消息的定义

消息由消息类型及消息参数体两部份组成。

  • 消息类型,整型,代表该消息是什么,例如是一条聊天消息,还是状态消息之类的。

  • 消息参数体,是json格式的消息。

  • Rainbow 的信号 Freda 发明了传呼机之后,rainbow进一步改进了传呼机发送信息所使用的信号。由于现在是数字、信息时代,rainbow发明的信号用N个自然数表示。为了避免两个人的对话被大坏蛋Variant F偷听T_T,rainbow把对话分成A、B、C三部分,分别用a、b、c三个密码加密。现在Freda接到了rainbow的信息,她的首要工作就是解密。Freda了解到,这三部分的密

 相关资料
  • 多客服的消息转发绝对是超级的简单,转发的消息类型为 transfer: use EasyWeChat\Kernel\Messages\Transfer; // 转发收到的消息给客服 $app->server->push(function($message) { return new Transfer(); }); $response = $app->server->serve(); 当

  • 我正在编写自己的websocket服务器和客户端。我成功地处理了握手并建立了联系。 现在我正在编写send_message函数,它创建了一个合适的框架。下面的例子只是为了这个问题,它不是我最终打算写的,这只是我尝试给我相同的结果的许多方法中的一种。 输入:以上函数应发送 第一个字节 第一位设置为1-,表示这是消息的最后一帧 第二、第三和第四个-所有的零,对于这个例子来说是不相关的 以下四位-000

  • 我有一个BE服务a,它正在使用假客户端向microservice B发送Rest JSON消息: 终点: Rest Endpoint正在向AWS Ses邮件或其他邮件提供商发送邮件。 问题是来自飞格的第一个呼叫可能需要5秒或更长时间。我需要使其异步,以便FE客户端不要等待邮件发送。 我如何可以使从飞度异步发出的Rest调用到超文本传输协议响应OK没有等待时间可以预期?是否有一些更好的解决方案来实现

  • 我想连接到包含此信息的mqseries服务器

  • 每次机器人被邀请到服务器时,我都想发送一条消息。然后它应该写这样的话:“你好,这是我的不和机器人” 到目前为止,我有这个代码,它不会产生错误,但也不会发送消息。

  • 我有一个简单的netty连接池和一个简单的HTTPendpoint来使用该池向ServerSocket发送TCP消息。相关代码看起来是这样的,客户端(NettyConnectionPoolClientApplication)是: 和服务器(ServerSocketRunner) 虚拟通道池处理程序和虚拟客户端处理程序只是打印出发生的事件,因此它们不相关。当服务器和客户端启动并且我向测试endpoi

  • 在我的聊天应用程序中,每当用户收到新消息时,我使用FCM和Firebase功能发送通知。 为此,我有一个FirebaseMessagingService,它覆盖了。除此之外,此服务还覆盖。每当用户第一次启动应用程序时,就会调用,我检索一个新令牌并将其存储在Firebase实时数据库中。 然后我去和一些用户聊天(不关闭应用程序)。当我收到新消息时,我会收到通知。调用。 问题是,当我关闭应用程序,然后

  • 问题内容: 我将实现类似于Facebook通知和此网站的内容(StackOverflow的通知会通知我们是否有人为我们的问题写评论/答案等)。请注意,用户将使用我的应用程序作为网站而不是移动应用程序。 我遇到以下获取结果的答案,但我需要推送结果而不是获取结果。 根据建议,我在实体类中创建了一个简单方法,并向其中添加了@PostPersist,但此方法不起作用,因此基于此答案,我添加了persist