多终端消息同步和隔离即时通讯方法及系统技术方案

技术编号:19186869 阅读:29 留言:0更新日期:2018-10-17 02:22
本发明专利技术公开了一种多终端消息同步和隔离即时通讯方法及系统,该方法包括:用户通过发送端与服务器建立连接,将消息发送给服务器,服务器对消息进行格式及合法性校验;校验通过后,生成同一消息类型全局唯一的同步ID;服务器向发送端发送确认报文ACK,确认报文ACK里返回消息ID对应的同步ID,发送端把收到同步ID更新到刚才发生的消息中;同时,服务器根据消息类型、消息和预先配置好的分发规则进行过滤分发处理;接收端接收服务器分发的消息,主要分在线接收消息和离线同步消息;本发明专利技术解决云服务开放合作的背景下,跟不同合作公司间合作不同业务的即时消息在不同终端的多端同步及隔离,并保证消息不丢失,并兼顾了对方在线和离线处理。

Multi terminal message synchronization and isolation instant messaging method and system

The invention discloses a multi-terminal message synchronization and isolation instant messaging method and system. The method comprises the following steps: the user establishes a connection with the server through the sender, sends the message to the server, the server verifies the format and legitimacy of the message, and generates a globally unique synchronization ID of the same message type after the verification passes; The server sends the acknowledgment message ACK to the sender, confirms the synchronization ID corresponding to the return message ID in the ACK, and the sender updates the received synchronization ID to the message that just happened. Meanwhile, the server filters and distributes the message according to the message type, message and the pre-configured distribution rules. The invention solves the multi-terminal synchronization and isolation of the instant messaging of different services cooperated with different cooperative companies in different terminals under the background of open cooperation of cloud services, and ensures that the messages are not lost, and takes into account the online and offline processing of the other party.

【技术实现步骤摘要】
多终端消息同步和隔离即时通讯方法及系统
本专利技术涉及移动通信
,尤其涉及一种多终端消息同步和隔离即时通讯方法及系统。技术背景在移动互联网时代,即时通讯是企业APP等终端提供企业服务的一个基本功能,企业间横向纵向合作也是常态,而且随着业务拓展,合作方也会越来越多,而跟不同的合作者间,在业务系统打通的同时,相关的即时通讯消息需要互通,有些定制业务的消息则需要隔离。比如企业平台既整合供给端,同时也拓展消费端,供给端服务有些可以共享,有些则不能,所以企业提供的即时通讯服务平台,既要考虑多端同步互通而且要考虑消息隔离。举个实际例子,比如平台提供医生视频问诊服务,视频的建立走的是即时通讯机制,问诊业务分为免费问诊、全科问诊、VIP问诊,不同的医生开通不同类型的服务,而且有不同的接诊端,接不同类型的问诊业务,比如医生PAD版能接所有的、手机版只能接免费问诊和全科问诊。那免费问诊的视频邀请消息同时要发给2个终端,而VIP问诊的视频邀请只能发给PAD版终端。现有的即时通讯技术,一般只解决企业自有端的即时通讯,进一步则解决多端消息同步,而缺少考虑,企业开放业务服务进行合作同时,必须也要开放即时通讯服务,和不同企业APP间结合的消息同步和隔离问题。
技术实现思路
针对上述不足,本专利技术提供一种多终端消息同步和隔离即时通讯方法及系统,该方法在不同用户终端、处理不同用户间、不同终端间的即时通讯,解决云服务开放合作的背景下,跟不同合作公司间合作不同业务的即时消息在不同终端的多端同步及隔离,并保证消息不丢失,并兼顾了对方在线和离线处理。本专利技术所采用的技术方案如下:一种多终端消息同步和隔离即时通讯方法,包括:S1用户通过发送端进行登录校验,与服务器建立连接;S2发送端将消息发送给服务器,所述消息包括消息ID、消息类型编码、发送方用户ID、发送方终端编码、接收方用户ID、接收方终端编码以及消息内容;S3服务器对接收到的消息进行消息格式及合法性校验;校验通过后,根据消息类型编码,生成同一消息类型全局唯一的同步ID;S4服务器把生成同步ID和消息一起存储到数据库表MSG_HIS中,每个消息类型对应一张消息历史表;S5服务器向发送端发送确认报文ACK,确认报文ACK里返回消息ID对应的同步ID,发送端把收到同步ID更新到刚才发生的消息中,并一起存储到本地;同时,服务器根据消息类型、消息和预先配置好的分发规则进行过滤分发处理;S6接收端接收服务器分发的消息,主要分在线接收消息和离线同步消息;若接收端在线,直接收取服务端推送的在线消息,并返回确认报文ACK给服务端,服务端收到确认报文ACK,说明服务端消息分发结束;若接收端离线,服务器对分发的消息进行离线存储处理,等接收端登录后,再根据接收端本地存储的消息类型对应的消息同步ID,进行消息同步确认及同步处理,拉取离线消息。进一步的,所述步骤S1具体如下:用户在发送端发送消息前,必须先跟服务端建立TCP连接,并向服务端发送消息类型为登录的消息,进行用户登录操作;服务端收到登录报文后,校验登录报文的用户登录信息,如果校验通过,记录发送端登录信息,并返回登录成功报文;发送端收到登录成功报文后,表示用户在发送端登录成功,后续发生的消息的发送方为该用户的用户ID,并给与该发送端一个终端编码。进一步的,所述服务器对接收到的消息进行消息格式及合法性校验,如果校验不通过,会丢弃消息,并通知发送端非法报文,统计达到一定数量阀值,断开与发送端的连接。进一步的,所述预先配置好的分发规则如下:针对发送端,根据消息报文格式里是否有指定用户的接收端,若有,则发送给指定用户终端,若无,则发送给用户所在的所有接收端;针对服务器,1)若接收端和消息类型不在同一个域,则表示这个消息不能与该接收端互通;2)根据某一消息类型的消息数据内容里的匹配内容来配置消息的路由规则。进一步的,所述步骤S6中,若接收端在线,直接收取服务端推送的在线消息,根据消息类型,查询本地对应消息类型的本地数据库表中的消息表,消息表中如果同步ID存在,说明已经收过该消息,处理结束;如果不存在,则存储该消息到消息表并更新该消息类型对应的同步ID,对比本地同步表MSG_SYNC里对应消息类型的同步ID,如果消息里的同步ID大于MSG_SYNC的同步ID,更新同步ID,小于则结束,如果没有该记录新增一条记录。进一步的,如果服务端在分发在线消息的时候,如果有一个接收端在指定的时间内,没有返回确认报文ACK,服务端记录分发错误的记录到分发错误表MSG_SEND_ERROR。进一步的,所述步骤S6中,根据接收端本地存储的消息类型对应的消息同步ID,进行消息同步确认及同步处理,拉取离线消息,具体如下:S601接收端获取本地同步表MSG_SYNC里的消息类型及对应的消息同步ID;S602接收端分别发送每个消息类型的同步确认报文SYNC_CHK,所述同步确认报文SYNC_CHK包括消息ID、消息类型编码、用户ID、请求同步消息类型和同步ID;S603服务端收到同步确认报文SYNC_CHK后,查询服务端的数据库表MSG_HIS、同步表MSG_SYNC及分发错误表MSG_SEND_ERROR里对应用户ID及消息类型的最小同步ID,再跟接收到的报文里的同步ID对比,如果报文里的同步ID小,取报文里的同步ID,反之则取最小同步ID并再减1,设置同步ID到SYNC_CHK_RST报文里,返回同步结果给接收端,所述同步结果报文SYNC_CHK_RST包括消息ID、消息类型编码、请求同步消息类型和同步ID;S604接收端收到同步结果报文SYNC_CHK_RST的消息类型及同步ID后,更新本地同步表MSG_SYNC里对应消息类型的本地同步ID;S605接收端向服务端发送同步请求报文SYNC_REQ,所述同步请求报文SYNC_REQ包括消息ID、消息类型编码、用户ID、请求同步消息类型和本地同步ID;S606服务端收到同步请求报文SYNC_REQ后,查询服务端的数据库表MSG_HIS,返回满足下述条件的指定条数纪录的消息记录,条件为:1)与接收方用户ID相等,2)与接收方终端编码相等或者接收方终端编码为空,3)同步ID大于报文里的同步ID;S607服务器对获得的消息记录,进行过滤分发处理,返回匹配的离线记录,并设置到返回报文SYNC_RESP里,一次离线同步处理结束;S608接收端收到SYNC_RESP后,对离线记录里的历史消息,逐条进行下述处理:接收端根据消息类型,查询本地对应消息类型的本地数据库消息表,表中如果同步ID存在,说明已经收过该消息,该条历史消息处理结束;如果不存在,则存储该消息到消息表;S609获取返回报文里历史消息的最大的同步ID,跟本地表MSG_SYNC中该消息类型的同步ID对比,如果消息里的最大同步ID大于表里的同步ID,更新MSG_SYNC该消息类型对应的同步ID,反之结束,如果MSG_SYNC没有该消息类型的记录,则新增一条记录;S610接收端重复步骤S605-步骤S609,直至返回报文SYNC_RESP,没有返回历史记录为止。本专利技术的另一目的是提供一种多终端消息同步和隔离的即时通讯系统,包括:发送端,所述发送端包括:登录连接请求模块,用于向服务端发送消息类本文档来自技高网...

【技术保护点】
1.一种多终端消息同步和隔离即时通讯方法,其特征在于,包括:S1用户通过发送端进行登录校验,与服务器建立连接;S2发送端将消息发送给服务器,所述消息包括消息ID、消息类型编码、发送方用户ID、发送方终端编码、接收方用户ID、接收方终端编码以及消息内容;S3服务器对接收到的消息进行消息格式及合法性校验;校验通过后,根据消息类型编码,生成同一消息类型全局唯一的同步ID;S4服务器把生成同步ID和消息一起存储到数据库表MSG_HIS中,每个消息类型对应一张消息历史表;S5服务器向发送端发送确认报文ACK,确认报文ACK里返回消息ID对应的同步ID,发送端把收到同步ID更新到刚才发生的消息中,并一起存储到本地;同时,服务器根据消息类型、消息和预先配置好的分发规则进行过滤分发处理;S6接收端接收服务器分发的消息,主要分在线接收消息和离线同步消息;若接收端在线,直接收取服务端推送的在线消息,并返回确认报文ACK给服务端,服务端收到确认报文ACK,说明服务端消息分发结束。若接收端离线,服务器对分发的消息进行离线存储处理,等接收端登录后,再根据接收端本地存储的消息类型对应的消息同步ID,进行消息同步确认及同步处理,拉取离线消息。...

【技术特征摘要】
1.一种多终端消息同步和隔离即时通讯方法,其特征在于,包括:S1用户通过发送端进行登录校验,与服务器建立连接;S2发送端将消息发送给服务器,所述消息包括消息ID、消息类型编码、发送方用户ID、发送方终端编码、接收方用户ID、接收方终端编码以及消息内容;S3服务器对接收到的消息进行消息格式及合法性校验;校验通过后,根据消息类型编码,生成同一消息类型全局唯一的同步ID;S4服务器把生成同步ID和消息一起存储到数据库表MSG_HIS中,每个消息类型对应一张消息历史表;S5服务器向发送端发送确认报文ACK,确认报文ACK里返回消息ID对应的同步ID,发送端把收到同步ID更新到刚才发生的消息中,并一起存储到本地;同时,服务器根据消息类型、消息和预先配置好的分发规则进行过滤分发处理;S6接收端接收服务器分发的消息,主要分在线接收消息和离线同步消息;若接收端在线,直接收取服务端推送的在线消息,并返回确认报文ACK给服务端,服务端收到确认报文ACK,说明服务端消息分发结束。若接收端离线,服务器对分发的消息进行离线存储处理,等接收端登录后,再根据接收端本地存储的消息类型对应的消息同步ID,进行消息同步确认及同步处理,拉取离线消息。2.根据权利要求1所述的一种多终端消息同步和隔离即时通讯方法,其特征在于,所述步骤S1具体如下:用户在发送端发送消息前,必须先跟服务端建立TCP连接,并向服务端发送消息类型为登录的消息,进行用户登录操作;服务端收到登录报文后,校验登录报文的用户登录信息,如果校验通过,记录发送端登录信息,并返回登录成功报文;发送端收到登录成功报文后,表示用户在发送端登录成功,后续发生的消息的发送方为该用户的用户ID,并给与该发送端一个终端编码。3.根据权利要求1所述的一种多终端消息同步和隔离即时通讯方法,其特征在于,所述服务器对接收到的消息进行消息格式及合法性校验,如果校验不通过,会丢弃消息,并通知发送端非法报文,统计达到一定数量阀值,断开与发送端的连接。4.根据权利要求1所述的一种多终端消息同步和隔离即时通讯方法,其特征在于,所述预先配置好的分发规则如下:针对发送端,根据消息报文格式里是否有指定用户的接收端,若有,则发送给指定用户终端,若无,则发送给用户所在的所有接收端;针对服务器,1)若接收端和消息类型不在同一个域,则表示这个消息不能与该接收端互通;2)根据某一消息类型的消息数据内容里的匹配内容来配置消息的路由规则。5.根据权利要求1所述的一种多终端消息同步和隔离即时通讯方法,其特征在于,所述步骤S6中,若接收端在线,直接收取服务端推送的在线消息,根据消息类型,查询本地对应消息类型的本地数据库表中的消息表,消息表中如果同步ID存在,说明已经收过该消息,处理结束;如果不存在,则存储该消息到消息表并更新该消息类型对应的同步ID,对比本地同步表MSG_SYNC里对应消息类型的同步ID,如果消息里的同步ID大于MSG_SYNC的同步ID,更新同步ID,小于则结束,如果没有该记录新增一条记录。6.根据权利要求1所述的一种多终端消息同步和隔离即时通讯方法,其特征在于,如果服务端在分发在线消息的时候,如果有一个接收端在指定的时间内,没有返回确认报文ACK,服务端记录分发错误的记录到分发错误表MSG_SEND_ERROR。7.根据权利要求1所述的一种多终端消息同步和隔离即时通讯方法,其特征在于,所述步骤S6中,根据接收端本地存储的消息类型对应的消息同步ID,进行消息同步确认及同步处理,拉取离线消息,具体如下:S601接收端获取本地同步表MSG_SYNC里的消息类型及对应的消息同步ID;S602接收端分别发送每个消息类型的同步确认报文SYNC_CHK,所述同步确认报文SYNC_CHK包括消息ID、消息类型编码、用户ID、请求同步消息类型和同步ID;S603服务端收到同步确认报文SYNC_CHK后,查询服务端的数据库表MSG_HIS、同步表MSG_SYNC及分发错误表MSG_S...

【专利技术属性】
技术研发人员:沈伟锐
申请(专利权)人:挂号网杭州科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1