一种基于路由计算的跨域消息发布方法及系统与流程

专利2024-07-07  65



1.本发明涉及域间资源传输技术领域,更具体地说,它涉及一种基于路由计算的跨域消息发布方法及系统。


背景技术:

2.相邻较近视频使用局域网进行传输的地方为一个域,域与域之间一般通过专网或公网进行视频传输,两个域之间的传输称之为跨域。现有技术仅支持同一个中心域内用户直接相互发送消息,在实现源、目标域网络不能直通的情况下不能直接相互发送消息。


技术实现要素:

3.本发明要解决的技术问题是针对现有技术的上述不足,本发明的目的一是提供一种基于路由计算的跨域消息发布方法,以实现源、目标域网络不能直通的情况下,通过中继域发送和接收消息,适用于各个域有自己的用户资源,跨域组网后,任意共享用户跨域发送消息的场景。
4.本发明的目的二是提供一种基于路由计算的跨域消息发布系统。
5.为了实现上述目的一,本发明提供一种基于路由计算的跨域消息发布方法,包括跨域发布消息流程:
6.步骤s1.获取用户列表;
7.步骤s2.根据用户列表选择用户并进行发送消息;
8.步骤s3.将发送的消息进行消息持久化;
9.步骤s4.判断用户是否为本域用户,若是本域用户,则跳转步骤s15;
10.步骤s5.获取全部路由规则;
11.步骤s6.判断是否存在到目标域的可用路径,若不存在,则跳转步骤s18;
12.步骤s7.判断是否存在线路带宽资源全部充足的可用路径,若不存在,则跳转步骤s18;
13.步骤s8.筛选中继最少的可用路径。
14.步骤s9.若存在多个中继最少的可用路径,则在多个中继最少的可用路径中筛选综合权重最大的可用路径;
15.步骤s10.若存在多个综合权重最大的可用路径,则在多个综合权重最大的可用路径中筛选综合连接状态最稳定的可用路径;
16.步骤s11.若不存在可用路径,则跳转步骤s18;
17.步骤s12.根据可用路径发送消息到下一域;
18.步骤s13.判断消息所在的当前域是否为中继域,若是中继域,则跳转步骤s12;
19.步骤s14.将发送的消息在目标域进行消息持久化;
20.步骤s15.判断消息接收者是否被禁用或者删除,若是,则跳转步骤s18;
21.步骤s16.判断消息接收者是否在线,若否,则跳转步骤s18;
22.步骤s17.消息通过mqtt发送至接收者,提示发送者成功信息,并结束;
23.步骤s18.提示发送者失败信息,并结束。
24.作为进一步地改进,域间按照上下级关系配置路由或配置独立的路由进行组网,配置路由关系后,每个路由节点会检查与其直接相连节点的连接状态;每个域都包含自己的信号源池、业务核心模块和视频编解码及分发模块。
25.进一步地,各个域可以同步自己的资源数据到上级域或下级域;需要同步的资源数据包括5类:域信息、域的网关信息、用户详情、共享分组和共享用户信息。
26.进一步地,检查域间的连接状态包括:通过将接入域和路由规则相关联的域接入到mqtt的特定主题下,实现域间连接状态的实时监听和更新;
27.每个域接入mqtt时连接本域唯一的主题/link/《域id》,其他关联域则监听该topic,一旦连接中断,则更新本域的连接状态,触发相关的事件通知。
28.进一步地,本域内消息发布流程为:消息发送者发送消息到服务模块,服务模块将消息发送给消息接收者。
29.进一步地,单个域包含用户模块、鉴权模块、消息模块、域管理模块、路由模块;
30.消息模块用于消息单发、群发、发送的历史消息展示、接收的历史消息展示、即时消息的展示、未读消息提醒,以及发送状态、已读状态的展示;
31.消息发布允许给离线用户发送消息,待用户再次登录后,通过未读数量和未读状态提示;
32.消息接收者在消息发送的时候被禁用或者删除,则提示发送者失败信息;
33.消息状态包括发送失败、发送成功未读、发送成功已读、接收未读、接收已读。
34.进一步地,还包括跨域消息确认流程:
35.步骤s101.查看未读消息;
36.步骤s102.点击查看消息的详情;
37.步骤s103.异步更改消息的状态;
38.步骤s104.判断发送者是否为本域用户,若是本域用户,则跳转步骤s107;
39.步骤s105.路由计算到下一节点;
40.步骤s106.判断当前域是否为中继域,若是中继域,则跳转步骤s105;
41.步骤s107.更改消息的状态为此用户已读。
42.进一步地,还包括用户操作消息删除流程:
43.步骤s201.获取历史消息;
44.步骤s202.点击删除历史消息;
45.步骤s203.逻辑删除该条历史消息;
46.步骤s204.判断该条历史消息的关联数是否为0,若是,则物理删除该条历史消息及关联的信息。
47.进一步地,还包括删除用户流程:
48.步骤s201.获取待删除的用户;
49.步骤s202.点击删除该用户;
50.步骤s203.逻辑删除该用户的所有消息;
51.步骤s204.逐条判断消息的关联数是否为0,若是,则物理删除该条消息及关联的
信息。
52.为了实现上述目的二,本发明提供一种基于路由计算的跨域消息发布系统,包括:至少一个处理器、与至少一个所述处理器通信连接的存储器;
53.所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的一种基于路由计算的跨域消息发布方法。
54.有益效果
55.本发明与现有技术相比,具有的优点为:
56.1.本发明可以打通域间的信息交流,方便不同地区协作。
57.2.本发明的计算可以使两个网络不可达的域消息互通。
58.3.本发明基于线路的带宽使用率、域间连接状态稳定性、线路权重可以动态选择网络质量更好的线路。
59.4.本发明各个域的用户可以根据需要配置共享分组,然后选择特定的用户进行消息发送。
附图说明
60.图1为多个域的组网结构图;
61.图2为域间的连接状态检测图;
62.图3为单个域消息发布流程图;
63.图4为跨域发布消息流程图;
64.图5为跨域消息确认流程图;
65.图6为用户操作消息删除流程图;
66.图7为删除用户流程图。
具体实施方式
67.下面结合附图中的具体实施例对本发明做进一步的说明。
68.参阅图1~7,一种基于路由计算的跨域消息发布方法,包括跨域发布消息流程:
69.步骤s1.获取用户列表;
70.步骤s2.根据用户列表选择用户并进行发送消息;
71.步骤s3.将发送的消息进行消息持久化,消息持久化是将消息内容存放在数据库所存放的磁盘中,目的在于可以随时查看处理,不会因为服务器崩溃或者断电丢失;
72.步骤s4.判断用户是否为本域用户,若是本域用户,则跳转步骤s15;
73.步骤s5.获取全部路由规则;
74.步骤s6.判断是否存在到目标域的可用路径,若不存在,则跳转步骤s18;
75.步骤s7.判断是否存在线路带宽资源全部充足的可用路径,若不存在,则跳转步骤s18;
76.步骤s8.筛选中继最少的可用路径。
77.步骤s9.若存在多个中继最少的可用路径,则在多个中继最少的可用路径中筛选综合权重最大的可用路径;
78.步骤s10.若存在多个综合权重最大的可用路径,则在多个综合权重最大的可用路
径中筛选综合连接状态最稳定的可用路径;
79.步骤s11.若不存在可用路径,则跳转步骤s18;
80.步骤s12.根据可用路径发送消息到下一域;
81.步骤s13.判断消息所在的当前域是否为中继域,若是中继域,则跳转步骤s12;
82.步骤s14.将发送的消息在目标域进行消息持久化,这里对于目标域,不能直接访问发送消息域的数据库,因此也需要在目标域持久化到数据库,方便在目标域随时查看;
83.步骤s15.判断消息接收者是否被禁用或者删除,若是,则跳转步骤s18;
84.步骤s16.判断消息接收者是否在线,若否,则跳转步骤s18;
85.步骤s17.消息通过mqtt发送至接收者,提示发送者成功信息,并结束;
86.步骤s18.提示发送者失败信息,并结束。
87.域间按照上下级关系配置路由或配置独立的路由进行组网。如图1所示,a域为顶级域,下配置包含b1,b2和b3;b1下级域为c1,b2下级域为c2,b3下级域为c3,c3下级域为d3。规划的路由连接关系:b1-》d3,b2-》d3。配置路由关系后,每个路由节点会检查与其直接相连节点的连接状态(是否可连通)。如b域检测与a域的连接状态,d3域和c3域、b1域、b2域的连接状态。每个域都包含自己的信号源池、业务核心模块和视频编解码及分发模块。路由规则配置支持线路权重、带宽大小配置,选择连接路径时可以基于可用带宽大小、中继次数、线路权重、连接状态稳定性四个维度计算最优的路由路径。
88.各个域可以同步自己的资源数据到上级域或下级域;需要同步的资源数据包括5类:域信息、域的网关信息、用户详情、共享分组和共享用户信息。
89.域间连接状态包含上下级接入域关系和独立的路由规则配置,检查域间的连接状态包括:通过将接入域和路由规则相关联的域接入到mqtt的特定主题下,实现域间连接状态的实时监听和更新。
90.每个域接入mqtt时连接本域唯一的主题/link/《域id》,其他关联域则监听该topic(主题),一旦连接中断,则更新本域的连接状态,触发相关的事件通知。如图2所示,在a域中配置上级域为b域,即a域接入到b域,配置成功后,a域连接mqtt的topic:/link/a,并监听topic:/link/b;在b域的下级域管理中,接收a域作为下级域,操作成功后,b域连接mqtt的topic:/link/b,并监听topic:/link/a;在a域的路由配置页面中,配置到c域的路由规则:a-c,配置成功后,c域同步增加路由规则c-a;a域增加监听topic:/link/c,c域连接mqtt的topic:/link/c,并监听topic:/link/a;如果a域掉线,则域mqtt的连接中断,mqtt会通知b域和c域,更新域a域的连接状态和连接稳定性。不同域的mqtt通过桥接配置的方式进行消息实时转发。
91.如图3所示,本域内消息发布流程为:消息发送者发送消息到服务模块,服务模块将消息发送给消息接收者。
92.单个域包含用户模块、鉴权模块、消息模块、域管理模块、路由模块。消息模块用于消息单发、群发、发送的历史消息展示、接收的历史消息展示、即时消息的展示、未读消息提醒,以及发送状态、已读状态的展示。消息发布允许给离线用户发送消息,待用户再次登录后,通过未读数量和未读状态提示。消息接收者在消息发送的时候被禁用或者删除,则提示发送者失败信息。消息状态包括发送失败、发送成功未读、发送成功已读、接收未读、接收已读。
93.如图5所示,本方法还包括跨域消息确认流程:
94.步骤s101.查看未读消息;
95.步骤s102.点击查看消息的详情;
96.步骤s103.异步更改消息的状态,由于跨域更改消息状态的链路较长,同步更改消息状态会造成前端响应时间可能较长,影响客户操作体验,因此通常都会在后台进行异步执行;
97.步骤s104.判断发送者是否为本域用户,若是本域用户,则跳转步骤s107;
98.步骤s105.路由计算到下一节点;
99.步骤s106.判断当前域是否为中继域,若是中继域,则跳转步骤s105;
100.步骤s107.更改消息的状态为此用户已读。
101.当用户查看未读消息详情时,需要变更该接收消息的已读状态,对于发送者是本域用户的消息可以直接更改数据库中的状态,对于发送者是跨域用户的消息,需要通过路由计算发送给对应的域的消息模块处理。
102.如图6所示,本方法还包括用户操作消息删除流程:
103.步骤s201.获取历史消息;
104.步骤s202.点击删除历史消息;
105.步骤s203.逻辑删除该条历史消息;
106.步骤s204.判断该条历史消息的关联数是否为0,若是,则物理删除该条历史消息及关联的信息。
107.如图7所示,本方法还包括删除用户流程:
108.步骤s201.获取待删除的用户;
109.步骤s202.点击删除该用户;
110.步骤s203.逻辑删除该用户的所有消息;
111.步骤s204.逐条判断消息的关联数是否为0,若是,则物理删除该条消息及关联的信息,直到全部消息判断完。
112.对于历史消息无关联的情况下,需要及时清理以免留下脏数据,当一条消息先进行逻辑删除,当所有的关联都没有的时候就进行物理删除。
113.一种基于路由计算的跨域消息发布系统,包括:至少一个处理器、与至少一个所述处理器通信连接的存储器;
114.所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的一种基于路由计算的跨域消息发布方法。
115.本说明书对缩略语和关键术语定义:
116.流媒体转发网关:负责将某个流媒体地址的视频数据,通过转发网关的某个网卡转出。
117.跨域:相邻较近视频使用局域网进行传输的地方为一个域,域与域之间一般通过专网或公网进行视频传输,两个域之间的传输称之为跨域。
118.以上仅是本发明的优选实施方式,应当指出对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些都不会影响本发明实施的效果和专利的实用性。

技术特征:
1.一种基于路由计算的跨域消息发布方法,其特征在于,包括跨域发布消息流程:步骤s1.获取用户列表;步骤s2.根据用户列表选择用户并进行发送消息;步骤s3.将发送的消息进行消息持久化;步骤s4.判断用户是否为本域用户,若是本域用户,则跳转步骤s15;步骤s5.获取全部路由规则;步骤s6.判断是否存在到目标域的可用路径,若不存在,则跳转步骤s18;步骤s7.判断是否存在线路带宽资源全部充足的可用路径,若不存在,则跳转步骤s18;步骤s8.筛选中继最少的可用路径。步骤s9.若存在多个中继最少的可用路径,则在多个中继最少的可用路径中筛选综合权重最大的可用路径;步骤s10.若存在多个综合权重最大的可用路径,则在多个综合权重最大的可用路径中筛选综合连接状态最稳定的可用路径;步骤s11.若不存在可用路径,则跳转步骤s18;步骤s12.根据可用路径发送消息到下一域;步骤s13.判断消息所在的当前域是否为中继域,若是中继域,则跳转步骤s12;步骤s14.将发送的消息在目标域进行消息持久化;步骤s15.判断消息接收者是否被禁用或者删除,若是,则跳转步骤s18;步骤s16.判断消息接收者是否在线,若否,则跳转步骤s18;步骤s17.消息通过mqtt发送至接收者,提示发送者成功信息,并结束;步骤s18.提示发送者失败信息,并结束。2.根据权利要求1所述的一种基于路由计算的跨域消息发布方法,其特征在于,域间按照上下级关系配置路由或配置独立的路由进行组网,配置路由关系后,每个路由节点会检查与其直接相连节点的连接状态;每个域都包含自己的信号源池、业务核心模块和视频编解码及分发模块。3.根据权利要求2所述的一种基于路由计算的跨域消息发布方法,其特征在于,各个域可以同步自己的资源数据到上级域或下级域;需要同步的资源数据包括5类:域信息、域的网关信息、用户详情、共享分组和共享用户信息。4.根据权利要求2所述的一种基于路由计算的跨域消息发布方法,其特征在于,检查域间的连接状态包括:通过将接入域和路由规则相关联的域接入到mqtt的特定主题下,实现域间连接状态的实时监听和更新;每个域接入mqtt时连接本域唯一的主题/link/<域id>,其他关联域则监听该topic,一旦连接中断,则更新本域的连接状态,触发相关的事件通知。5.根据权利要求2所述的一种基于路由计算的跨域消息发布方法,其特征在于,本域内消息发布流程为:消息发送者发送消息到服务模块,服务模块将消息发送给消息接收者。6.根据权利要求2所述的一种基于路由计算的跨域消息发布方法,其特征在于,单个域包含用户模块、鉴权模块、消息模块、域管理模块、路由模块;消息模块用于消息单发、群发、发送的历史消息展示、接收的历史消息展示、即时消息的展示、未读消息提醒,以及发送状态、已读状态的展示;
消息发布允许给离线用户发送消息,待用户再次登录后,通过未读数量和未读状态提示;消息接收者在消息发送的时候被禁用或者删除,则提示发送者失败信息;消息状态包括发送失败、发送成功未读、发送成功已读、接收未读、接收已读。7.根据权利要求1所述的一种基于路由计算的跨域消息发布方法,其特征在于,还包括跨域消息确认流程:步骤s101.查看未读消息;步骤s102.点击查看消息的详情;步骤s103.异步更改消息的状态;步骤s104.判断发送者是否为本域用户,若是本域用户,则跳转步骤s107;步骤s105.路由计算到下一节点;步骤s106.判断当前域是否为中继域,若是中继域,则跳转步骤s105;步骤s107.更改消息的状态为此用户已读。8.根据权利要求1所述的一种基于路由计算的跨域消息发布方法,其特征在于,还包括用户操作消息删除流程:步骤s201.获取历史消息;步骤s202.点击删除历史消息;步骤s203.逻辑删除该条历史消息;步骤s204.判断该条历史消息的关联数是否为0,若是,则物理删除该条历史消息及关联的信息。9.根据权利要求1所述的一种基于路由计算的跨域消息发布方法,其特征在于,还包括删除用户流程:步骤s201.获取待删除的用户;步骤s202.点击删除该用户;步骤s203.逻辑删除该用户的所有消息;步骤s204.逐条判断消息的关联数是否为0,若是,则物理删除该条消息及关联的信息。10.一种基于路由计算的跨域消息发布系统,其特征在于,包括:至少一个处理器、与至少一个所述处理器通信连接的存储器;所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现权利要求1-9任一项所述的一种基于路由计算的跨域消息发布方法。

技术总结
本发明公开了一种基于路由计算的跨域消息发布方法,属于域间资源传输技术领域,解决现有技术仅支持同一个中心域内用户直接相互发送消息的技术问题,方法包括获取全部路由规则;判断是否存在到目标域的可用路径,是否存在线路带宽资源全部充足的可用路径,用带宽大小、中继次数、线路权重、连接状态稳定性四个维度计算最优的路由路径,通过最优的路由路径发送消息至接收者。本发明还公开了一种基于路由计算的跨域消息发布系统。本发明可以打通域间的信息交流,方便不同地区协作,并且发送消息的路由路径最优。的路由路径最优。的路由路径最优。


技术研发人员:吴蒙恩 管涛 訾明华 付先超
受保护的技术使用者:郑州小鸟信息科技有限公司
技术研发日:2022.07.18
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-8575.html

最新回复(0)