CN112333088A - 一种兼容性即时通信传输方法 - Google Patents

一种兼容性即时通信传输方法 Download PDF

Info

Publication number
CN112333088A
CN112333088A CN202110001104.4A CN202110001104A CN112333088A CN 112333088 A CN112333088 A CN 112333088A CN 202110001104 A CN202110001104 A CN 202110001104A CN 112333088 A CN112333088 A CN 112333088A
Authority
CN
China
Prior art keywords
client
server
callback
message
development platform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110001104.4A
Other languages
English (en)
Other versions
CN112333088B (zh
Inventor
陈祖明
李华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Manjinba Shenzhen Technology Co ltd
Original Assignee
Manjinba Shenzhen Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Manjinba Shenzhen Technology Co ltd filed Critical Manjinba Shenzhen Technology Co ltd
Priority to CN202110001104.4A priority Critical patent/CN112333088B/zh
Publication of CN112333088A publication Critical patent/CN112333088A/zh
Application granted granted Critical
Publication of CN112333088B publication Critical patent/CN112333088B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种兼容性即时通信传输方法,包括即时通信开发平台、服务端和客户端:客户端与服务端的网络连接建立后,客户端发送给服务端的第一个报文为CONNECT报文;服务端接收到客户端的CONNECT报文后向客户端发送CONNACK报文响应;即时通信开发平台在某一事件发生之前或者之后,向服务器发送请求,服务端可以据此进行必要的数据同步,或者干预事件的后续处理流程,即进行第三方回调处理;所述第三方回调处理包括在线状态回调、用户资料关系链回调、单聊消息回调、群组系统回调和音视频通话回调;采用本发明传输方法作为底层通信技术,实现了即时通信服务平台,并这个服务平台之上,实现了我们的社交产品“可访”。

Description

一种兼容性即时通信传输方法
技术领域
本发明涉及通信技术领域,具体是一种兼容性即时通信传输方法。
背景技术
作为传输层要解决的是数据在网络之间的传输质量问题,它属于较高层次。传输层用于提高网络层服务质量,提供可靠的端到端的数据传输。互联网应用常用标准协议为TCP、UDP,然而现有的即时通信传输方法在安全性较差,同时存在高延时的现象,没有“IM即时通讯 + RTC 实时音视频 + Push推送”一站式Paas级即时通信云服务平台,不能满足所有通信场景需求,因此开发时间和成本较高,降低了产品研发效率。
发明内容
本发明的目的在于提供一种兼容性即时通信传输方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种兼容性即时通信传输方法,包括即时通信开发平台、服务端和客户端:
客户端与服务端的网络连接建立后,客户端发送给服务端的第一个报文为CONNECT报文;
服务端接收到客户端的CONNECT报文后向客户端发送CONNACK报文响应;
即时通信开发平台在某一事件发生之前或者之后,向服务器发送请求,服务端可以据此进行必要的数据同步,或者干预事件的后续处理流程,即进行第三方回调处理;
所述第三方回调处理包括在线状态回调、用户资料关系链回调、单聊消息回调、群组系统回调和音视频通话回调;
服务端通过在线状态回调实时监控客户端的上线、下线动作,当网络信号完全不可用时,客户端连TCP协议层的FIN包或RST包都无法发出时,IM云服务器需要等待90秒的心跳超时时间触发DisCONNECT+TimeOut回调;
服务端通过用户资料关系链回调实时监控客户端的信息,实现请求增加其他客户端;
服务端通过单聊消息回调实时监控客户端的单聊消息;
服务端通过群组系统回调实时监控客户端创建群组的请求,包括服务端可以拒绝客户端创建群组的请求;
服务端通过音视频通话回调实时监控客户端发起音视频邀请和应答之后的操作。
作为本发明进一步的方案:若客户端发送给服务端的第二个报文仍为CONNECT报文则按协议违规处理并断开客户端的连接;
若客户端没有收到服务端的CONNACK报文时客户端关闭网络连接;
客户端发送PING报文给服务端,用于在没有其它控制报文从客户端发给服务端时,告知服务端客户端还在线;请求服务端发送响应确认客户端还在线,使用网络以确认网络连接没有断开;
服务端发送PONG报文响应客户端的PING报文;表示服务端还存在;
DISCONNECT报文是客户端发给服务端的最后一个控制报文,表示客户端正常断开连接。
作为本发明进一步的方案:在客户端设置过滤机制,在服务端采用黑名单过滤机制,阻止目录设备连接请求;
基于客户端提供的信息或者身份认证的结果,服务端可以限制客户端对服务端资源的访问;
客户端使用服务端发送的SSL证书验证服务端的身份,同时在客户端和服务端之间使用虚拟专用网确保客户端连接的是预期的服务器。
作为本发明进一步的方案:即时通信开发平台提供安全的非对称加密 ECDSA-SHA256 和哈希加密 HMAC-SHA256,通过SDK集成便捷的接口调用,完成用户帐号与密码的鉴权;
服务端内置HTTP管理接口,为即时通信开发平台提供后台管理入口;
即时通信开发平台提供管理控制台,通过控制台完成应用创建,下载即时通信开发平台SDK,查询应用配置信息完成应用联调,集成即时通信功能,控制台还提供了后台消息下发、用户管理、群组管理和数据统计功能;
即时通信开发平台提供单聊、群聊、资料托管、关系链托管、账号托管全功能模块。
作为本发明进一步的方案:所述第三方回调处理包括事件发生之前回调和事件发生之后通知;
事件发生之前回调:让服务端干预该事件的处理逻辑,即时通信开发平台根据回调返回码确定后续处理流程;
事件发生之后通知:让服务端实现必要的数据同步,即时通信开发平台忽略回调返回码。
作为本发明进一步的方案:若需要启用安全级别最强的HTTPS双向认证,则:
在即时通信开发平台中配置第三方回调URL、回调开启;
即时通信开发平台服务提需求工单,由即时通信开发平台给服务端签发双向认证所需的证书,接收到证书之后,依照Apache配置和Nginx配置HTTPS进行双向认证指南。
作为本发明进一步的方案:第三方回调处理将通过 HTTP/HTTPS 请求的方式发送给服务端,服务端需要处理即时通信开发平台的回调请求并尽快进行应答;
在线状态回调包括状态变更回调,其中状态更变回调中的触发场景具体为:
用户通过客户端发起登录的上线请求;
用户通过客户端发起登出的下线请求;
用户主动kill客户端进程,或者切后台后进程被手机操作系统kill掉,或者 crash导致进程异常退出,云服务器检测到客户端网络断开后触发网络断开回调;
客户端心跳超时,包括关闭网络,或网络完全不可用,云服务器检测到客户端的心跳超时触发连接断开回调,心跳超时时间为90秒。
作为本发明进一步的方案:单聊消息回调包括发送单聊消息之前回调和发送单聊消息之后回调;
发送单聊消息具体为:服务端通过该回调实时监控用户的单聊消息,修改用户发言内容。
作为本发明进一步的方案:服务端通过音视频通话回调实时监控用户发起音视频邀请和应答之后的操作。
与现有技术相比,本发明的有益效果是:
1.在开发、测试阶段,采用文本协议,方便开发、调试
2.在生产、运营阶段,切换为二进制协议,降低资源和带宽,节省流量
3.基于本方案,实现即时通信(IM)服务平台、即时通信开发平台,两个为同一套系统,名称最好统一:即时通信(IM)开发平台,并这个服务平台之上,实现了我们的社交产品“可访”。
主要向开发者和企业提供安全可靠、低延时、高并发的通信云技术能力,通过“IM即时通讯 + RTC 实时音视频 + Push推送”一站式PaaS级通信云服务,以一套 SDK 满足所有通信场景需求,降低开发时间和成本,提升产品研发效率。并向政务、金融、交通、能源、医疗、社交、直播、电商、教育等行业并提供场景化解决方案。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,一种兼容性即时通信传输方法,包括即时通信开发平台、服务端和客户端:
客户端与服务端的网络连接建立后,客户端发送给服务端的第一个报文为CONNECT报文;
服务端接收到客户端的CONNECT报文后向客户端发送CONNACK报文响应;
即时通信开发平台在某一事件发生之前或者之后,向服务器发送请求,服务端可以据此进行必要的数据同步,或者干预事件的后续处理流程,即进行第三方回调处理;
第三方回调处理包括在线状态回调、用户资料关系链回调、单聊消息回调、群组系统回调和音视频通话回调;
服务端通过在线状态回调实时监控客户端的上线、下线动作,当网络信号完全不可用时,客户端连TCP协议层的FIN包或RST包都无法发出时,IM云服务器需要等待90秒的心跳超时时间触发DisCONNECT+TimeOut回调;
服务端通过用户资料关系链回调实时监控客户端的信息,实现请求增加其他客户端;
服务端通过单聊消息回调实时监控客户端的单聊消息;
服务端通过群组系统回调实时监控客户端创建群组的请求,包括服务端可以拒绝客户端创建群组的请求;
服务端通过音视频通话回调实时监控客户端发起音视频邀请和应答之后的操作。
若客户端发送给服务端的第二个报文仍为CONNECT报文则按协议违规处理并断开客户端的连接;
若客户端没有收到服务端的CONNACK报文时客户端关闭网络连接;
客户端发送PING报文给服务端,用于在没有其它控制报文从客户端发给服务端时,告知服务端客户端还在线;请求服务端发送响应确认客户端还在线,使用网络以确认网络连接没有断开;
服务端发送PONG报文响应客户端的PING报文;表示服务端还存在;
DISCONNECT报文是客户端发给服务端的最后一个控制报文,表示客户端正常断开连接。
在客户端设置过滤机制,在服务端采用黑名单过滤机制,阻止目录设备连接请求;
基于客户端提供的信息或者身份认证的结果,服务端可以限制客户端对服务端资源的访问;
客户端使用服务端发送的SSL证书验证服务端的身份,同时在客户端和服务端之间使用虚拟专用网确保客户端连接的是预期的服务器。
即时通信开发平台提供安全的非对称加密 ECDSA-SHA256 和哈希加密 HMAC-SHA256,通过SDK集成便捷的接口调用,完成用户帐号与密码的鉴权;
服务端内置HTTP管理接口,为即时通信开发平台提供后台管理入口;
即时通信开发平台提供管理控制台,通过控制台完成应用创建,下载即时通信开发平台SDK,查询应用配置信息完成应用联调,集成即时通信功能,控制台还提供了后台消息下发、用户管理、群组管理和数据统计功能;
即时通信开发平台提供单聊、群聊、资料托管、关系链托管、账号托管全功能模块。
第三方回调处理包括事件发生之前回调和事件发生之后通知;
事件发生之前回调:让服务端干预该事件的处理逻辑,即时通信开发平台根据回调返回码确定后续处理流程;
事件发生之后通知:让服务端实现必要的数据同步,即时通信开发平台忽略回调返回码。
若需要启用安全级别最强的HTTPS双向认证,则:
在即时通信开发平台中配置第三方回调URL、回调开启;
即时通信开发平台服务提需求工单,由即时通信开发平台给服务端签发双向认证所需的证书,接收到证书之后,依照Apache配置和Nginx配置HTTPS进行双向认证指南。
第三方回调处理将通过 HTTP/HTTPS 请求的方式发送给服务端,服务端需要处理即时通信开发平台的回调请求并尽快进行应答;
在线状态回调包括状态变更回调,其中状态更变回调中的触发场景具体为:
用户通过客户端发起登录的上线请求;
用户通过客户端发起登出的下线请求;
用户主动kill客户端进程,或者切后台后进程被手机操作系统kill掉,或者 crash导致进程异常退出,云服务器检测到客户端网络断开后触发网络断开回调;
客户端心跳超时,包括关闭网络,或网络完全不可用,云服务器检测到客户端的心跳超时触发连接断开回调,心跳超时时间为90秒。
单聊消息回调包括发送单聊消息之前回调和发送单聊消息之后回调;
发送单聊消息具体为:服务端通过该回调实时监控用户的单聊消息,修改用户发言内容。
服务端通过音视频通话回调实时监控用户发起音视频邀请和应答之后的操作。
客户端到服务端的网络连接建立后,客户端发送给服务端的第一个报文必须是CONNECT报文,在一个网络连接上,客户端只能发送一次CONNECT报文。服务端必须将客户端发送的第二个CONNECT报文当作协议违规处理并断开客户端的连接。
附带数据包含一个或多个编码的字段。包括客户端的唯一标识符,用户名和Token。除了客户端标识之外,其它的字段都是可选的,基于标志位来决定可变报头中是否需要包含这些字段。
服务端发送CONNACK报文响应从客户端收到的CONNECT报文。服务端发送给客户端的第一个报文必须是CONNACK 。
如果客户端在合理的时间内没有收到服务端的CONNACK报文,客户端应该关闭网络连接。合理的时间取决于应用的类型和通信基础设施。
客户端发送PING报文给服务端。用于:
请求服务端发送 响应确认它还活着。
使用网络以确认网络连接没有断开。
保持连接(Keep Alive)处理中用到这个报文。
支持多种对称加密,并支持动态切换。
本方案作为传输层协议,在消息传输过程,匹配提供可靠、合适的安全功能。除了技术上的安全问题外,还有地理因素(例如美国欧盟安全港原则 [USEUSAFEHARB]),行业标准(例如第三方支付行业数据安全标准 [PCIDSS]),监管方面的考虑(例如萨班斯-奥克斯利法案 [SARBANES])等问题。
轻量级对称加密
采用高级加密标准 [AES] 数据加密标准 [DES]。
使用为受限的低端设备特别优化过的轻量级加密国际标准 ISO 29192[ISO29192]。
受限设备
本方案支持客户端设备过滤机制,在服务端采用黑名单过滤机制,阻止目录设备连接请求。
客户端授权
基于客户端提供的信息如用户名、客户端标识符(ClientId)、客户端的主机名或IP地址,或者身份认证的结果,服务端可以限制对某些服务端资源的访问。
客户端身份验证
在控制指令集CONNECT报文包含用户名和Token字段。实现可以决定如何使用这些字段的内容。实现者可以提供自己的身份验证机制。
实现可以明文传递认证数据,混淆那些数据,或者不要求任何认证数据,但应该意识到这会增加中间人攻击和重放攻击的风险。
在客户端和服务端之间使用虚拟专用网(VPN)可以确保数据只被授权的客户端收到。
使用TLS [RFC5246] 时,服务端可以使用客户端发送的SSL证书验证客户端的身份。
实现可以允许客户端通过应用消息给服务端发送凭证用于身份验证。
服务端身份验证
本方案采用TLS[RFC5246],客户端可以使用服务端发送的SSL证书验证服务端的身份。
实现可以允许服务端通过应用消息给客户端发送凭证用于身份验证。
另外在客户端和服务端之间使用虚拟专用网(VPN)也可以确保客户端连接的是预期的服务器。
控制报文和数据包的完整性
应用可以在应用消息中单独包含哈希值。这样做可以为PUBLISH控制报文的网络传输和静态数据提供内容的完整性检查。
TLS [RFC5246] 提供了对网络传输的数据做完整性校验的哈希算法。
在客户端和服务端之间使用虚拟专用网(VPN)连接可以在VPN覆盖的网络段提供数据完整性检查。
控制报文和应用消息的保密性
TLS [RFC5246] 可以对网络传输的数据加密。如果有效的TLS密码组合包含的加密算法为NULL,那么它不会加密数据。要确保客户端和服务端的保密,应避免使用这些密码组合。
应用可以单独加密应用消息的内容。这可以提供应用消息传输途中和静态数据的私密性。但不能给应用消息的其它属性如主题名加密。
客户端和服务端实现可以加密存储静态数据,例如可以将应用消息作为会话的一部分存储。
在客户端和服务端之间使用虚拟专用网(VPN)连接可以在VPN覆盖的网络段保证数据的私密性。
检测客户端和服务端的盗用
使用TLS [RFC5246] 的客户端和服务端实现应该能够确保,初始化TLS [RFC5246] 连接时提供的SSL证书是与主机名(客户端要连接的或服务端将被连接的)关联的。
使用TLS [RFC5246] 的客户端和服务端实现,可以选择提供检查证书吊销列表(CRLs [RFC5280]) 和在线证书状态协议 (OSCP) [RFC6960] 的功能,拒绝使用被吊销的证书。
物理部署可以将防篡改硬件与应用消息的特殊数据传输结合。例如,一个仪表可能会内置一个GPS以确保没有在未授权的地区使用。IEEE安全设备认证 [IEEE 802.1AR]就是用于实现这个机制的一个标准,它使用加密绑定标识符验证设备身份。
检测异常行为
服务端实现可以监视客户端的行为,检测潜在的安全风险。
重复的连接请求
重复的身份验证请求
连接的异常终止
发送大量请求和消息
发送无法送达的消息
客户端连接但是不发送数据
发现违反安全规则的行为,服务端实现可以断开客户端连接。
服务端实现检测不受欢迎的行为,可以基于IP地址或客户端标识符实现一个动态黑名单列表。
服务部署可以使用网络层次控制(如果可用)实现基于IP地址或其它信息的速率限制或黑名单。
协议适配器
传输层处理的是数据包,在传输前,协议适配器(Protocol Adapter)会将协议信息打包进数据包,接收的时候通过接收端的协议适配器拆包重构协议。
本方案设计协议适配与报头DataType 配对发送至目标端,目标端根据DataType配置对应的适配器进行解密、反序列化解析。
接入服务
接入服务为即时通信(IM)开发平台 提供覆盖全球的高连通、高可靠、强安全的网络连接通道,自研多重最优寻址算法,具有全网调度能力,使用智能兼容技术穿透网关策略,长连接多路复用,传输层协议优化,通道加密等,让业务不必关心网络细节,即可安全地与业务后台实现简单可靠的通讯。
单聊
单聊即一对一聊天,提供包括文字、表情、地理位置、图片、语音、短视频及自定义消息的能力,可实现红包、对话机器人、消息回执、消息撤回等特殊功能,除此之外还提供离线消息、漫游消息等服务。
群聊
多人聊天服务,内置私有群、公开群、聊天室、音视频聊天室和在线成员广播大群五种群组形态,能够适应各种群组需求的场景。
私有群:适用于较为私密的聊天场景,群组资料不公开,只能通过邀请的方式加入,类似于微信群。
公开群:适用于公开群组,具有较为严格的管理机制、准入机制,类似于 QQ 群。
聊天室:群成员可以随意进出,组织较为松散,成员可以获取到本人进入聊天室前的聊天消息。
音视频聊天室:与聊天室类似,但群成员人数无上限,并且在 Web 端支持以游客身份接收聊天消息。
在线成员广播大群:成员人数无上限,在 Web 端支持以游客身份接收群消息,适用于向 App 全体在线成员推送消息的场景。
群组具备高度可定制性,包括自定义群组形态、自定义字段、自定义群组 ID、自定义事件回调等。App 可以根据自己的需求进行深度定制。详细可参阅 群组系统 文档。
用户资料托管
提供资料、关系链托管的一套整体解决方案,可存储用户的资料(例如昵称、头像、自定义资料字段)、好友列表、黑名单等。即时通信(IM)开发平台 资料关系链托管服务提供服务器集群备份服务,多机房异地部署,提高服务质量及容灾效果。
账户鉴权
提供安全的非对称加密 ECDSA-SHA256 和哈希加密 HMAC-SHA256(推荐使用 HMAC-SHA256),开发者可直接使用 App 自有帐号快速集成即时通信(IM)开发平台 服务,省去帐号映射的繁琐工作。通过简单的 SDK 集成,便捷的接口调用,完成用户帐号(Identifier)与密码(UserSig)的鉴权。
高级功能
服务端 API
服务端 API 是一个 HTTP 管理接口,主要功能是为 App 后台(服务端)提供一个后台管理入口。目前即时通信(IM)开发平台 支持的 服务端 API 参阅 服务端 API 接口简介文档。
除了 服务端 API,即时通信(IM)开发平台 控制台也可实现简单的数据管理、单发/群发消息等功能,开发者可以使用调试工具进行数据管理、查看及测试。相比之下,服务端 API 接口较为原始,但可以提供功能更为强大的管理能力。
第三方回调
所谓 第三方回调,即即时通信(IM)开发平台 会在某一事件发生之前或者之后,向App 的后台服务器发送请求,App 后台(服务端)可以据此进行必要的数据同步,或者干预事件的后续处理流程。
即时通信(IM)开发平台 提供种类丰富的回调接口。详细请参阅 回调命令列表文档。
模型扩展
后台管理与监控
除了基础的即时通信功能之外,即时通信(IM)开发平台 还提供了方便且易用的管理控制台。您可通过控制台完成应用创建,下载即时通信(IM)开发平台 SDK,查询应用配置信息完成应用联调,集成即时通信功能;同时,控制台还为您提供了后台消息下发、用户管理、群组管理和数据统计等功能。
场景和架构参考
即时通信(IM)开发平台 提供单聊、群聊、资料托管、关系链托管、账号托管全功能模块,并提供完善的 服务端 API 接口供后台完成多种扩展功能。
创建并管理应用
前提条件
已注册即时通信(IM)开发者平台账户,并完善资料,及实名认证。
创建体验版APP
登录即时通信(IM)开发者平台。
单击“添加新产品”。
在创建应用页面中,填写应用名称。
然后下载对应平台SDK(Android、IOS、Windows、Mac、Linux、Web)。
回调配置
从功能角度来看,回调可以分为四大类:
在线状态回调
资料关系链回调
单聊消息回调
群组系统回调
从处理角度来看,回调可以分为以下两大类:
事件发生之前回调:回调的主要目的在于让 App 后台可以干预该事件的处理逻辑,即时通信 IM 服务会根据回调返回码确定后续处理流程(例如发送群消息之前回调)。
事件发生之后通知:回调的主要目的在于让 App 后台实现必要的数据同步,即时通信 IM 服务忽略回调返回码(例如群组成员退群之后通知)。
配置规则
目前即时通信 IM服务配置的回调仅支持 HTTP/HTTPS 回调。如果开发者需要启用安全级别最强的 HTTPS 双向认证:
1. 在即时通信 IM服务开发平台中配置回调 URL(必须为 HTTPS 域名)、回调开启。
2. 给即时通信 IM 服务提需求工单,由即时通信IM服务给App签发双向认证所需的证书,所需要的资料包括:appId、App名称、回调URL(必须与控制台中自助配置的回调URL一致)、拿到证书之后,依照如下两篇指引配置 HTTPS 双向认证:Apache 配置 HTTPS 双向认证指南和Nginx 配置 HTTPS 双向认证指南。
服务端API 是即时通信(IM)服务平台提供给 开发者的App 后台(服务端)的HTTP 管理接口,其主要目的在于为开发者的 App 后台(服务端)提供一个管理入口。为了安全性,服务端API 仅提供 HTTPS 接口。
在线相关回调
状态变更回调
状态变更回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户上、下线的行为,包括:
用户上线(TCP 连接建立)
用户注销下线或者用户网络断开(TCP 连接断开)
App 心跳超时(App 异常被 kill 或者 Crash)
状态变更回调-触发场景
用户通过客户端发起登录的上线请求。
用户通过客户端发起登出的下线请求。
用户主动 kill 客户端进程,或者切后台后进程被手机操作系统 kill 掉,或者crash 导致进程异常退出,云服务器检测到客户端网络断开后触发网络断开回调。
客户端心跳超时,包括关闭网络,或网络完全不可用,云服务器检测到客户端的心跳超时触发连接断开回调。心跳超时时间为 90 秒。
状态变更回调-实时性
Android/iOS/PC
对于绝大多数情况,用户状态的变化都能实时感知,从而实时地触发回调。例如:
用户主动登录,触发Login + Register回调。
用户主动登出,触发Logout + Unregister回调。
用户主动 kill 客户端进程,或者用户切后台后,客户端进程被手机操作系统kill 掉,触发DisCONNECT + LinkClose回调。
只有以下一种特殊情况,IM 云服务器需要等待90秒的心跳超时时间才能感知状态变更:
当网络完全不可用时,客户端连 TCP 协议层的 FIN 包或 RST 包都无法发出时,IM云服务器需要等待 90 秒的心跳超时时间才能触发 DisCONNECT + TimeOut 回调。常见的场景有用户主动关闭客户端的网络(例如开启手机的飞行模式),或者进入完全没有网络信号的隧道。
用户主动登录 Web 端时,IM 云服务器可以实时感知,实时触发回调。
用户网络不可用,或者直接关闭 Web 页面时,IM 云服务器需要等待90秒的心跳超时时间才能触发回调。
用户资料关系链回调
添加好友之后回调
添加好友之后回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户的新增好友信息。
添加好友之后回调-触发场景
App 后台(服务端)通过 服务端 API 发起加好友请求,请求添加双向好友,且对方的加好友验证方式是“允许任何人”。
App 用户通过客户端发起加好友请求,请求添加双向好友,且对方的加好友验证方式是“允许任何人”。
App 后台(服务端)通过 服务端 API 发起加好友请求,请求添加单向好友。
App 用户通过客户端发起加好友请求,请求添加单向好友。
App 用户收到加好友请求后,同意添加对方为好友。
App 后台(服务端)通过 服务端 API 强制加好友。
删除好友之后回调
删除好友之后回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户的好友删除信息。
删除好友之后回调-触发场景
App 用户通过客户端发起删除好友的请求。
App 后台(服务端)通过 服务端 API 发起删除好友的请求。
添加黑名单之后回调
添加黑名单之后回调-实现功能
App 后台(服务端)可以通过该回调实时监控黑名单的添加情况。
添加黑名单之后回调-触发场景
App 用户通过客户端发起添加黑名单的请求。
App 后台(服务端)通过 服务端 API 发起添加黑名单的请求
删除黑名单之后回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户黑名单的删除情况。
删除黑名单之后回调-触发场景
App 用户通过客户端发起删除黑名单请求。
App 后台(服务端)通过 服务端 API 发起删除黑名单请求
单聊消息相关回调
发送单聊消息之前回调
发送单聊消息之前回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户的单聊消息,包括:
对发单聊消息进行实时记录(例如记录日志,或者同步到其他系统)。
拦截用户的单聊发言请求。可拦截所有类型的消息,如文本、图像、自定义消息等。
修改用户发言内容(例如敏感词过滤,或者增加一些 App 自定义信息)。
发送单聊消息之前回调-触发场景
App 用户通过客户端发送单聊消息。
App 管理员通过 服务端 API (sendmsg 接口)发送单聊消息
发送单聊消息之后回调
发送单聊消息之后回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户的单聊消息,包括:
对单聊消息进行实时记录(例如记录日志,或者同步到其他系统)。
对单聊消息进行数据统计(例如人数,消息数等)。
发送单聊消息之后回调-触发场景
App 用户通过客户端发送单聊消息。
群组管理相关回调
创建群组之前回调
创建群组之前回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户创建群组的请求,包括后台可以拒绝用户创建群组的请求。
创建群组之前回调-触发场景
-App 用户通过客户端创建群组
-App 管理员通过 服务端 API 创建群组
创建群组之后回调
创建群组之后回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户创建群组的信息,包括: 通知 App后台(服务端)有群组创建成功,App 后台(服务端)可以据此进行数据同步等操作。
创建群组之后回调-触发场景
-App 用户通过客户端创建群组成功
-App 管理员通过 服务端 API 创建群组成功
更换群主之后回调
更换群主之后回调-实现功能
App 后台(服务端)可以通过该回调实时监控群成员加入的消息,包括:通知 App 后台(服务端)有成员入群,App 可以据此进行必要的数据同步。
更换群主之后回调-触发场景
-App 用户通过客户端主动转让群主。
App 管理员通过 服务端 API 变更群主。
群成员发言之后回调
群成员发言之后回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户的群发消息,包括:通知 App 后台(服务端)有群组消息发送成功,App 可以据此进行必要的数据同步。
群成员发言之后回调-触发场景
-App 用户通过客户端发送群消息。
App 管理员通过 服务端 API 发送群组消息
群成员发言之前回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户的群发消息,包括:
-对群消息进行实时记录(例如记录日志,或者同步到其他系统)。
-拦截用户在群内发言的请求。
-修改用户发言内容(例如敏感词过滤,或者增加一些 App 自定义信息)。
群成员发言之前回调-触发场景
-App 用户通过客户端发送群消息。
-App 管理员通过 服务端 API 发送群组消息
群成员离开之后回调
群成员离开之后回调-实现功能
App 后台(服务端)可以通过该回调实时监控用户的退群动态,包括:对用户退群进行实时记录(例如记录日志,或者同步到其他系统)。
群成员离开之后回调-触发场景
- App 用户通过客户端退群。
- App 用户通过客户端踢人。
- App 管理员通过 服务端 API 删除群成员。
虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
故以上所述仅为本申请的较佳实施例,并非用来限定本申请的实施范围;即凡依本申请的权利要求范围所做的各种等同变换,均为本申请权利要求的保护范围。

Claims (8)

1.一种兼容性即时通信传输方法,其特征在于,包括即时通信开发平台、服务端和客户端:
客户端与服务端的网络连接建立后,客户端发送给服务端的第一个报文为CONNECT报文;
服务端接收到客户端的CONNECT报文后向客户端发送CONNACK报文响应;
即时通信开发平台在某一事件发生之前或者之后,向服务器发送请求,服务端可以据此进行必要的数据同步,或者干预事件的后续处理流程,即进行第三方回调处理;
所述第三方回调处理包括在线状态回调、用户资料关系链回调、单聊消息回调、群组系统回调和音视频通话回调;
服务端通过在线状态回调实时监控客户端的上线、下线动作,当网络信号完全不可用时,客户端连TCP协议层的FIN包或RST包都无法发出时,IM云服务器需要等待90秒的心跳超时时间触发DisCONNECT+TimeOut回调;
服务端通过用户资料关系链回调实时监控客户端的信息,实现请求增加其他客户端;
服务端通过单聊消息回调实时监控客户端的单聊消息;
服务端通过群组系统回调实时监控客户端创建群组的请求,包括服务端可以拒绝客户端创建群组的请求;
服务端通过音视频通话回调实时监控客户端发起音视频邀请和应答之后的操作。
2.根据权利要求1所述的一种兼容性即时通信传输方法,其特征在于,若客户端发送给服务端的第二个报文仍为CONNECT报文则按协议违规处理并断开客户端的连接;
若客户端没有收到服务端的CONNACK报文时客户端关闭网络连接;
客户端发送PING报文给服务端,用于在没有其它控制报文从客户端发给服务端时,告知服务端客户端还在线;请求服务端发送响应确认客户端还在线,使用网络以确认网络连接没有断开;
服务端发送PONG报文响应客户端的PING报文;表示服务端还存在;
DISCONNECT报文是客户端发给服务端的最后一个控制报文,表示客户端正常断开连接。
3.根据权利要求1所述的一种兼容性即时通信传输方法,其特征在于,在客户端设置过滤机制,在服务端采用黑名单过滤机制,阻止目录设备连接请求;
基于客户端提供的信息或者身份认证的结果,服务端可以限制客户端对服务端资源的访问;
客户端使用服务端发送的SSL证书验证服务端的身份,同时在客户端和服务端之间使用虚拟专用网确保客户端连接的是预期的服务器。
4.根据权利要求1所述的一种兼容性即时通信传输方法,其特征在于,即时通信开发平台提供安全的非对称加密 ECDSA-SHA256 和哈希加密 HMAC-SHA256,通过SDK集成便捷的接口调用,完成用户帐号与密码的鉴权;
服务端内置HTTP管理接口,为即时通信开发平台提供后台管理入口;
即时通信开发平台提供管理控制台,通过控制台完成应用创建,下载即时通信开发平台SDK,查询应用配置信息完成应用联调,集成即时通信功能,控制台还提供了后台消息下发、用户管理、群组管理和数据统计功能;
即时通信开发平台提供单聊、群聊、资料托管、关系链托管、账号托管全功能模块。
5.根据权利要求1所述的一种兼容性即时通信传输方法,其特征在于,所述第三方回调处理包括事件发生之前回调和事件发生之后通知;
事件发生之前回调:让服务端干预该事件的处理逻辑,即时通信开发平台根据回调返回码确定后续处理流程;
事件发生之后通知:让服务端实现必要的数据同步,即时通信开发平台忽略回调返回码。
6.根据权利要求1所述的一种兼容性即时通信传输方法,其特征在于,若需要启用安全级别最强的HTTPS双向认证,则:
在即时通信开发平台中配置第三方回调URL、回调开启;
即时通信开发平台服务提需求工单,由即时通信开发平台给服务端签发双向认证所需的证书,接收到证书之后,依照Apache配置和Nginx配置HTTPS进行双向认证指南。
7.根据权利要求1所述的一种兼容性即时通信传输方法,其特征在于,第三方回调处理将通过 HTTP/HTTPS 请求的方式发送给服务端,服务端需要处理即时通信开发平台的回调请求并尽快进行应答;
在线状态回调包括状态变更回调,其中状态更变回调中的触发场景具体为:
用户通过客户端发起登录的上线请求;
用户通过客户端发起登出的下线请求;
用户主动kill客户端进程,或者切后台后进程被手机操作系统kill掉,或者 crash导致进程异常退出,云服务器检测到客户端网络断开后触发网络断开回调;
客户端心跳超时,包括关闭网络,或网络完全不可用,云服务器检测到客户端的心跳超时触发连接断开回调,心跳超时时间为90秒。
8.根据权利要求1所述的一种兼容性即时通信传输方法,其特征在于,单聊消息回调包括发送单聊消息之前回调和发送单聊消息之后回调;
发送单聊消息具体为:服务端通过该回调实时监控用户的单聊消息,修改用户发言内容。
CN202110001104.4A 2021-01-04 2021-01-04 一种兼容性即时通信传输方法 Active CN112333088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110001104.4A CN112333088B (zh) 2021-01-04 2021-01-04 一种兼容性即时通信传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110001104.4A CN112333088B (zh) 2021-01-04 2021-01-04 一种兼容性即时通信传输方法

Publications (2)

Publication Number Publication Date
CN112333088A true CN112333088A (zh) 2021-02-05
CN112333088B CN112333088B (zh) 2021-04-20

Family

ID=74302071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110001104.4A Active CN112333088B (zh) 2021-01-04 2021-01-04 一种兼容性即时通信传输方法

Country Status (1)

Country Link
CN (1) CN112333088B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115051964A (zh) * 2022-06-08 2022-09-13 浙江百应科技有限公司 一种管理聊天账号的方法、系统、电子装置和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101540735A (zh) * 2008-03-17 2009-09-23 北京亿企通信息技术有限公司 一种在即时通信工具中用户获取单聊会话历史记录的方法
CN102075737A (zh) * 2011-03-01 2011-05-25 天津市天祥世联网络科技有限公司 视频监控会话方法
CN102902580A (zh) * 2011-07-26 2013-01-30 腾讯科技(深圳)有限公司 一种程序回调方法及装置
CN103942093A (zh) * 2013-01-23 2014-07-23 阿里巴巴集团控股有限公司 业务处理方法及系统
CN106383696A (zh) * 2015-07-26 2017-02-08 威海兴达信息科技有限公司 一种基于wcf的即时通讯软件的设计与实现的方法
CN109104359A (zh) * 2018-07-30 2018-12-28 五八有限公司 消息监控方法、装置、设备及存储介质
CN109600306A (zh) * 2019-01-22 2019-04-09 腾讯科技(深圳)有限公司 创建会话的方法、装置和存储介质
US10769633B2 (en) * 2005-01-21 2020-09-08 Samsung Electronics Co., Ltd. Method, apparatus, and system for performing wireless transactions with near-field communication (NFC) set up

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10769633B2 (en) * 2005-01-21 2020-09-08 Samsung Electronics Co., Ltd. Method, apparatus, and system for performing wireless transactions with near-field communication (NFC) set up
CN101540735A (zh) * 2008-03-17 2009-09-23 北京亿企通信息技术有限公司 一种在即时通信工具中用户获取单聊会话历史记录的方法
CN102075737A (zh) * 2011-03-01 2011-05-25 天津市天祥世联网络科技有限公司 视频监控会话方法
CN102902580A (zh) * 2011-07-26 2013-01-30 腾讯科技(深圳)有限公司 一种程序回调方法及装置
CN103942093A (zh) * 2013-01-23 2014-07-23 阿里巴巴集团控股有限公司 业务处理方法及系统
CN106383696A (zh) * 2015-07-26 2017-02-08 威海兴达信息科技有限公司 一种基于wcf的即时通讯软件的设计与实现的方法
CN109104359A (zh) * 2018-07-30 2018-12-28 五八有限公司 消息监控方法、装置、设备及存储介质
CN109600306A (zh) * 2019-01-22 2019-04-09 腾讯科技(深圳)有限公司 创建会话的方法、装置和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115051964A (zh) * 2022-06-08 2022-09-13 浙江百应科技有限公司 一种管理聊天账号的方法、系统、电子装置和存储介质
CN115051964B (zh) * 2022-06-08 2023-10-13 浙江百应科技有限公司 一种管理聊天账号的方法、系统、电子装置和存储介质

Also Published As

Publication number Publication date
CN112333088B (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
US11108570B2 (en) Method and apparatus for multimedia communication, and storage medium
US11165604B2 (en) Method and system used by terminal to connect to virtual private network, and related device
US7305546B1 (en) Splicing of TCP/UDP sessions in a firewalled network environment
US10237732B2 (en) Mobile device authentication in heterogeneous communication networks scenario
US9369491B2 (en) Inspection of data channels and recording of media streams
US7394761B2 (en) System and method for delivering messages using alternate modes of communication
US8364772B1 (en) System, device and method for dynamically securing instant messages
CN102546559B (zh) 受限网络中端到端传输数据的方法、设备和系统
JP2015525018A (ja) コール確立時間を短縮させるシステムおよび方法
MX2012015175A (es) Sistema y metodo para mensajeria segura en una red hibrida entre iguales.
CN110741614B (zh) 数据通信系统和方法
US11863529B2 (en) Private cloud routing server connection mechanism for use in a private communication architecture
JP2008533784A (ja) コンピュータシステムにおける通信のための方法、システム、及びコンピュータプログラム
US20230254292A1 (en) Private and Secure Chat Connection Mechanism for Use in a Private Communication Architecture
US8015406B2 (en) Method to create an OSI network layer 3 virtual private network (VPN) using an HTTP/S tunnel
CN112333088B (zh) 一种兼容性即时通信传输方法
CN107294968A (zh) 一种音视频数据的监控方法和系统
CN114390049A (zh) 一种应用数据获取方法及装置
US11683292B2 (en) Private cloud routing server connection mechanism for use in a private communication architecture
CN100428748C (zh) 一种基于双重身份的多方通信方法
TWI578748B (zh) Virtual private network connection method
CN114928459A (zh) 用于私有通讯架构的连接方法与电脑可读取媒体
JP5804480B2 (ja) 自律型ネットワークを介するセキュアデータのストリームの転送の最適化手法
US12137072B1 (en) Duplicate message filtering in a multi-region active-active architecture
TWI769965B (zh) 用於私有通訊架構的連接方法與電腦可讀取媒體

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant