CN110380956A - 一种传输即时通信消息的方法、装置及系统 - Google Patents
一种传输即时通信消息的方法、装置及系统 Download PDFInfo
- Publication number
- CN110380956A CN110380956A CN201910777972.4A CN201910777972A CN110380956A CN 110380956 A CN110380956 A CN 110380956A CN 201910777972 A CN201910777972 A CN 201910777972A CN 110380956 A CN110380956 A CN 110380956A
- Authority
- CN
- China
- Prior art keywords
- account
- cloth
- filter value
- grand
- grand filter
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/212—Monitoring or handling of messages using filtering or selective blocking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种传输即时通信消息的方法、装置及系统,属于计算机技术领域。本发明实施例提供的方法,接收第一账户登录的第一终端发送的第一布隆过滤值;当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值;如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息。采用本申请,可以在服务器没有存储用户的好友标识列表的情况下,对恶意攻击者发送的即时通信消息进行过滤。
Description
技术领域
本发明计算机技术领域,特别涉及一种传输即时通信消息的方法、装置及系统。
背景技术
随着互联网的普及,即时通信应用程序得到的非常广泛的应用。而在互联网中,也存在这很多恶意攻击者。恶意攻击者经常会通过虚假的应用程序,向用户发送虚假的即时通信消息,在虚假的即时通信消息携带大量的数据,如文件、视频等,占用某用户的终端的带宽,以影响终端的正常使用。
在现有技术中,在用户B需要将信息发送到用户A的情况下,服务器会接收到用户B发送的即时通信消息,其中携带有用户B的账户标识,当服务器中存储用户A的好友账户列表存在用户B的账户标识,确定用户A与用户B存在好友关系,对用户B发送的信息进行转发。当服务器中存储的好友账户列表不存在用户B的账户标识,确定用户A与用户B为陌生人,对用户B发送的信息进行过滤。
在实现本申请的过程中,发明人发现相关技术至少存在以下问题:
对于某些即时通信应用程序,由于安全级别要求较高,不允许服务器存储用户的好友标识列表,在服务器没有存储用户的好友标识列表的情况下,服务器无法对恶意攻击者发送的即时通信消息进行过滤。
发明内容
为了解决相关技术中存在的技术问题,本申请实施例提供了一种传输即时通信消息的方法和装置。所述传输即时通信消息的方法和装置的技术方案如下:
第一方面,提供了一种传输即时通信消息的方法,应用于服务器,所述方法包括:
接收第一账户登录的第一终端发送的第一布隆过滤值,其中,所述第一布隆过滤值是将所述第一账户的各好友账户的账户标识输入布隆过滤器得到的布隆过滤值;
当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值;
如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息。
可选的,所述接收第一账户登录的第一终端发送的第一布隆过滤值之后,所述方法还包括:
当接收到所述第一账户登录的第一终端发送的对应所述第一布隆过滤值的更新信息时,基于所述更新信息对所述第一布隆过滤值进行更新,其中,所述更新信息包括发生数值更新的数据位的标识。
可选的,如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息,包括:
确定所述第二布隆过滤值中数值为1的数据位的标识;
在所述第一布隆过滤值中,确定所述标识对应的数据位的数值,如果所述标识对应的数据位的数值均为1,则向所述第一终端转发所述即时通信消息。
第二方面,提供了一种传输即时通信消息的方法,应用于第一终端,所述方法包括:
获取本地登录的第一账户的好友账户列表中的各好友账户的账户标识;
基于所述各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值;
向服务器发送所述第一布隆过滤值,其中,所述第一布隆过滤值,用于指示所述服务器当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值,如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息;
接收所述服务器发送的所述即时通信消息。
可选的,所述基于所述各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值,包括:
如果所述第一账户的好友账户列表中的好友账户的数目大于或等于预设阈值,则将所述各好友账户的账户标识,输入布隆过滤器,生成第一布隆过滤值;
如果所述第一账户的好友账户列表中的好友账户的数目小于预设的数目阈值,则随机生成预设数目的账户标识,将所述各好友账户的账户标识和随机生成的账户标识,输入布隆过滤器,生成第一布隆过滤值,其中,所述预设数目大于或等于所述数目阈值。
可选的,所述向服务器发送所述第一布隆过滤值之后,所述方法还包括:
当检测到所述第一账户的好友账户列表发生变化时,将变化后的好友账户列表中的各好友账户的账户标识,输入布隆过滤器,得到第三布隆过滤值;
确定所述第三布隆过滤值相对于所述第一布隆过滤值发生数值更新的数据位的标识;
向所述服务器发送对应所述第一布隆过滤值的更新信息,其中,所述更新信息包括所述发生数值更新的数据位的标识。
可选的,接收所述服务器发送的所述即时通信消息之后,包括:
如果所述好友账户列表中不包括所述第二账户的账户标识,则丢弃所述即时通信消息。
第三方面,提供了一种传输即时通信消息的装置,所述装置应用于服务器,所述装置包括:
接收模块,用于接收第一账户登录的第一终端发送的第一布隆过滤值,其中,所述第一布隆过滤值是将所述第一账户的各好友账户的账户标识输入布隆过滤器得到的布隆过滤值;
确定模块,用于当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值;
转发模块,用于如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息。
可选的,所述接收模块,还用于:
当接收到所述第一账户登录的第一终端发送的对应所述第一布隆过滤值的更新信息时,基于所述更新信息对所述第一布隆过滤值进行更新,其中,所述更新信息包括发生数值更新的数据位的标识。
可选的,所述转发模块,还用于:
确定所述第二布隆过滤值中数值为1的数据位的标识;
在所述第一布隆过滤值中,确定所述标识对应的数据位的数值,如果所述标识对应的数据位的数值均为1,则向所述第一终端转发所述即时通信消息。
第四方面,提供了一种传输即时通信消息的装置,所述装置应用于第一终端,所述装置包括:
获取模块,用于获取本地登录的第一账户的好友账户列表中的各好友账户的账户标识;
确定模块,用于基于所述各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值;
发送模块,用于向服务器发送所述第一布隆过滤值,其中,所述第一布隆过滤值,用于指示所述服务器当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值,如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息;
接收模块,用于接收所述服务器发送的所述即时通信消息。
可选的,所述第一布隆过滤值确定模块,还用于:
如果所述第一账户的好友账户列表中的好友账户的数目大于或等于预设阈值,则将所述各好友账户的账户标识,输入布隆过滤器,生成第一布隆过滤值;
如果所述第一账户的好友账户列表中的好友账户的数目小于预设的数目阈值,则随机生成预设数目的账户标识,将所述各好友账户的账户标识和随机生成的账户标识,输入布隆过滤器,生成第一布隆过滤值,其中,所述预设数目大于或等于所述数目阈值。
可选的,所述发送模块,还用于:
当检测到所述第一账户的好友账户列表发生变化时,将变化后的好友账户列表中的各好友账户的账户标识,输入布隆过滤器,得到第三布隆过滤值;
确定所述第三布隆过滤值相对于所述第一布隆过滤值发生数值更新的数据位的标识;
向所述服务器发送对应所述第一布隆过滤值的更新信息,其中,所述更新信息包括所述发生数值更新的数据位的标识。
可选的,所述接收模块,还用于:
如果第二账户的账户标识在第一账户的所述各好友账户的账户标识中,对所述第一账户进行展示第二账户对所述第一账户的即时通信消息。
如果所述好友账户列表中不包括所述第二账户的账户标识,则丢弃所述即时通信消息。
第五方面,提供了一种传输即时通信消息的系统,所述系统包括终端和服务器,其中:
所述服务器,用于接收第一账户登录的第一终端发送的第一布隆过滤值,其中,所述第一布隆过滤值是将所述第一账户的各好友账户的账户标识输入布隆过滤器得到的布隆过滤值;当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值;如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息。
所述终端,用于获取本地登录的第一账户的好友账户列表中的各好友账户的账户标识;基于所述各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值;向服务器发送所述第一布隆过滤值;接收所述服务器发送的所述即时通信消息。
第六方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现的传输即时通信消息的方法。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现的传输即时通信消息的方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的方法,基于用户的好友标识和布隆过滤器,获取第一布隆过滤值,将第一布隆过滤值上传到服务器,获取发送方的用户标识,获取第二布隆过滤值,当第二布隆过滤值,如果第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值不相同,实现对恶意攻击者的过滤。在上述过程中服务器没有存储好友标识列表,可见,可以在服务器没有存储用户的好友标识列表的情况下,对恶意攻击者发送的即时通信消息进行过滤。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实施环境的示意图;
图2是本发明实施例提供的一种传输即时通信消息的方法流程图;
图3是本发明实施例提供的一种传输即时通信消息的方法流程图;
图4是本发明实施例提供的一种传输即时通信消息的方法流程图;
图5是本申请实施例提供的一种传输即时通信消息的方法示意图;
图6是本申请实施例提供的一种传输即时通信消息的装置结构示意图;
图7是本申请实施例提供的一种传输即时通信消息的装置结构示意图;
图8是本申请实施例提供的终端结构示意图;
图9是本申请实施例提供的服务器结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本申请实施例提供的一种实施环境的示意图。参见图1,本申请提供的传输即时通信消息的方法可以由终端和服务器共同实现。终端可以运行有具有即时通信功能的应用程序,如即时通信应用程序、购物应用程序、直播应用程序等,终端可以具备摄像头、麦克风、耳机等部件,终端具有通信功能,可以接入互联网,终端可以是手机、平板电脑、智能穿戴设备、台式计算机、笔记本电脑等。服务器可以是上述应用程序的后台服务器,服务器可以与终端建立通信。该服务器可以是一个单独的服务器也可以是一个服务器组,如果是单独的服务器,该服务器可以负责下述方案中的所有处理,如果是服务器组,服务器组中的不同服务器分别可以负责下述方案中的不同处理,具体的处理分配情况可以由技术人员根据实际需求任意设置,此处不再赘述。
本申请实施例提供的方法,可以应用于即时通信应用程序,具体的可以用于不能将用户的好友标识信息泄露给服务器的即时通信应用程序,从而保护用户的好友信息泄露给第三方或恶意攻击者,还可以用于服务器不能知道用户好友标识列表的情况下,服务器对陌生人发送的即时通信消息进行过滤,进而拦截陌生人发送的攻击消息。
在一些即时通信应用程序中,当服务器中存储好友账户列表时,恶意攻击者可以先盗取存储在服务器上的第一账户的好友账户列表,获取该好友账户列表中好友账户标识,可以根据获取到的好友账户标识,对恶意攻击者使用的第二账户进行伪装,伪装成第一账户的好友账户向第一账户发攻击性的即时通信消息,这样,服务器将无法基于好友账户列表对这种攻击性的即时通信消息进行过滤。在另一些即时通信应用程序中,为了解决上述的问题,服务器不会存储任何账户的好友账户列表,可以在终端判断第二账户是否在第一账户的好友账户列表中。但是,这样恶意攻击者依然达到了占用第一终端带宽的目的。
本申请实施例,确定该账户的各个好友账户的账户标识,将这些账户标识输入布隆过滤器中,获取布隆过滤值,将该布隆过滤值上传到服务器。当服务器接收到发送给该账户的信息时,首先会将发送方的账户标识输入布隆过滤器,生成发送方的布隆过滤值,如果该布隆过滤值的有效数据位与该用户上传布隆过滤值对应的数据位的数值相同,则向该账户登录的终端转发即时通信消息。该方法不需要将该账户的好友账户的账户标识列表上传到服务器,而将该账户的各个好友账户的账户标识的布隆过滤值上传到服务器,从而避免了服务器将账户的好友列表泄露给第三方的问题,又可以对恶意攻击者进行过滤。
图2是本申请实施例提供的一种传输即时通信消息的方法中服务器侧的流程图。参见图2,该实施例包括:
步骤201,接收第一账户登录的第一终端发送的第一布隆过滤值。
步骤202,当接收到第二终端发送的第二账户对第一账户的即时通信消息时,将第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值。
步骤203,如果第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值相同,则向第一终端发送即时通信消息。
图3是本申请实施例提供的一种传输即时通信消息的方法中客户端侧的流程图。参见图3,该实施例包括:
步骤301,获取本地登录的第一账户的好友账户列表中的各好友账户的账户标识。
步骤302,基于各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值。
步骤303,向服务器发送第一布隆过滤值。
步骤304,接收服务器发送的即时通信消息。
图4是本申请实施例提供的一种传输即时通信消息的方法中终端与服务器之间交互的流程图。参见图4,该实施例包括:
在步骤401中,第一终端获取本地登录的第一账户的好友账户列表中的各好友账户的账户标识。
在实施中,用户的终端上安装有即时通信应用程序,用户可以运行即时通信应用程序,在其中注册账户(即上述第一账户),并添加好友账户。在即时通信应用程序中,针对每个登录过的账户,可以保存有账户对应的好友账户列表,用户每添加一个好友账户,即时通信应用程序就会将相应的好友账户的账户标识添加到好友账户列表中。可以在第一终端登录第一账户时,第一终端会读取存储在第一终端的第一账户的好友账户列表,获取好友账户列表中各个好友账户的账户标识,用于后续生成布隆过滤值。或者也可以在达到预设周期时,获取好友账户列表中各个好友账户的账户标识,用于后续生成布隆过滤值。或者还可以在初期获取好友账户列表中各个好友账户的账户标识,用于后续生成布隆过滤值,后续设置相应的更新机制。
在步骤402中,第一终端基于各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值。
其中,布隆过滤器由数组和哈希函数组成。该数组为二进制数包含预设个数据位,每个数据位为一个比特位,每个数据位的初始数值为0。布隆过滤器中有预设数目个哈希函数,每个哈希函数可以将每个账户标识映射为不同的整数,每个整数可以就是数组中的一个数据位的标识,基于这些数据位的标识,可以确定每个整数对应数组中的数据位,将这些数据位的数值置1,进而,获取这些账户标识对应的布隆过滤值。
在实施中,首先,确定预设个数据位的数组和预设数目个哈希函数,并将该数组的所有数据位的数值置0。然后,第一终端会读取存储在第一终端的第一账户的好友账户列表,获取好友账户列表中各个好友账户的账户标识,获取第一账户的各好友账户的账户标识,将第一账户的全部好友账户的账户标识输入布隆过滤器中,每个哈希函数对第一账户的各个好友账户的账户标识进行映射,获取各个好友账户的账户标识分别对应的预设数目个整数,这些整数分别为数据位的标识,将这些数据位的数值进行置1,进而得到第一布隆过滤值,并将第一布隆过滤值存储在终端的指定位置。
可选的,对于好友数量较少的情况,可以随机生成一定数量的虚拟的账户标识,进而生成布隆过滤值,相应的,步骤502的处理可以如下:如果第一账户的好友账户列表中的好友账户的数目大于或等于预设阈值,则将各好友账户的账户标识,输入布隆过滤器,生成第一布隆过滤值,并将第一布隆过滤值发送给服务器;如果第一账户的好友账户列表中的好友账户的数目小于预设的数目阈值,则随机生成预设数目的账户标识,将各好友账户的账户标识和随机生成的账户标识,输入布隆过滤器,生成第一布隆过滤值,其中,预设数目大于或等于数目阈值。
在实施中,第一终端可以读取在本地登录的第一账户的好友账户列表,获取这些好友账户的数目。当这些好友账户的数目小于或等于阈值时,第一终端可以随机生成预设数目个账户标识,将各好友账户的账户标识和随机生成的账户标识,作为布隆过滤器的输入,生成第一布隆过滤值。其中,预设数目应大于阈值,以保证输入布隆过滤器中的好友账户数目大于阈值。当这些好友账户的数目大于阈值时,将这些账户标识直接输入布隆过滤器中,生成第一布隆过滤值,上述阈值与预设数目都是有技术人员设定的。
需要说明的是,当账户的好友账户的数目达到一定数目时,将这些好友账户标识输入布隆过滤器,获取到布隆过滤值,该布隆过滤值中所含的有效数据位较多,恶意攻击者不能根据该布隆过滤值反推出用户的好友账户标识,进而,降低了恶意攻击者盗取该账户的好友信息的风险。
在步骤403中,第一终端向服务器发送第一布隆过滤值。
在实施中,终端在得到第一布隆过滤值之后,生成通知消息,在通知消息中添加第一账户的账户标识和第一布隆过滤值,然后将通知消息发送给服务器。
在步骤404中,服务器接收第一终端发送的第一布隆过滤值。
在实施中,服务器可以根据第一布隆过滤值与第一账户的账户标识建立一个数据表,用于存储相应的第一布隆过滤值与第一账户的账户标识。当服务器接收到第一账户登录的第一终端发送的通知消息时,该通知信息中包含第一布隆过滤值与第一账户的账户标识。确定服务器接收到第一账户登录的第一终端发送的通知消息,获取通知信息中包含第一布隆过滤值与第一账户的账户标识对应添加到上述数据表中。
可选的,当终端检测到第一账户的好友列表发生变化时,可以采取相应的更新机制对服务器存储的第一账户的布隆过滤值进行更新,相应的处理可以如下:当第一终端检测到第一账户的好友账户列表发生变化时,第一终端将变化后的好友账户列表中的各好友账户的账户标识,输入布隆过滤器,得到第三布隆过滤值。第一终端确定第三布隆过滤值相对于第一布隆过滤值发生数值更新的数据位的标识,向服务器发送对应第一布隆过滤值的更新信息。当服务器接收到第一账户登录的第一终端发送的对应第一布隆过滤值的更新信息时,基于更新信息对第一布隆过滤值进行更新,其中,更新信息包括发生数值更新的数据位的标识。
在实施中,当第一账户在即时通信软件中添加或者删除好友时,将此时的第一账户的各好友账户的账户标识输入布隆过滤器中,获取第三布隆过滤值。获取存储在终端中的第一布隆过滤值,将第一布隆过滤值与第三布隆过滤值进行对比,确定第一布隆过滤值对应的数据位与第三布隆过滤值对应的数据位不同的数据位,确定这些数据位对应的标识,向服务器发送第一过滤值更新信息,该更新信息中携带将这些标识及第一账户的账户标识。同时,删除终端存储的第一布隆过滤值,并存储第三布隆过滤值。
进一步的,将第一布隆过滤值与第三布隆过滤值进行对比,确定第一布隆过滤值对应的数据位与第三布隆过滤值对应的数据位不同的数据位,确定这些数据位的标识。具体可以为,获取第三布隆过滤值,确定第三布隆过滤值中数据位数值为1的数据位。获取存储在终端中的第一布隆过滤值,确定第一布隆过滤值中数据位数值为1的数据位。确定第一布隆过滤值数据位数值为1的数据位与第三布隆过滤值数据位数值为1的数据位不同的数据位,确定这些数据位的标识,将这些标识添加到更新信息中。
或者还有一种方式,当第一账户在即时通信软件中添加或者删除好友时,可以将添加或者删除的好友账户的账户标识输入布隆过滤器中,获取第三布隆过滤值。获取存储在终端的第一布隆过滤值,将第一布隆过滤值与第三布隆过滤值进行对比,确定第一布隆过滤值对应的数据位与第三布隆过滤值对应的数据位不同的数据位,确定这些数据位对应的标识,向服务器发送第一过滤值更新信息,该更新信息中携带将这些标识及第一账户的账户标识。同时,确定这些标识在第一布隆过滤值中对应的数据位,对这些数据位进行取反处理,将修改后的第一布隆过滤值存储修改后的第一布隆过滤值存储在终端中。
进一步的,将第一布隆过滤值与第三布隆过滤值进行对比,确定第一布隆过滤值对应的数据位与第三布隆过滤值对应的数据位不同的数据位,确定这些数据位对应的标识,具体可以为,获取第三布隆过滤值,确定第三布隆过滤值中数据位数值为1的数据位。获取存储在终端中的第一布隆过滤值,确定第一布隆过滤值中数据位数值为1的数据位。确定第一布隆过滤值数据位数值为1的数据位与第三布隆过滤值数据位数值为1的数据位不同的数据位,确定这些数据位对应的标识,将这些标识添加到更新信息中。当服务器接收到第一终端发送的更新信息时,该更新信息为第一布隆过滤值更新信息,该第一布隆过滤值更新信息中,包括需要更新布隆过滤器的数据位的标识,及第一账户的账户标识。服务器依据第一账户的账户标识,确定第一账户的好友账户标识对应的第一布隆过滤值,依据更新信息中的标识,确定第一布隆过滤值需要更新的数据位,对这些数据位进行取反处理,进而,达到对第一布隆过滤值进行更新的目的。
进一步的,对这些数据位进行取反处理,可以为数据位数值为1修改为数据位数值为0,或者,可以将数据位数值为0修改为数据位数值为1,进而,达到对第一布隆过滤值进行更新的目的。
例如,第一布隆过滤值数据位数值为1的数据位标识分别为1、4、9、13和20,当增加一个好友账户后,第三布隆过滤值数据位数值为1的数据位标识分别为1为1、3、4、7、9、13和20,对比第一布隆过滤值数据位数值为1的数据位与第三布隆过滤值数据位数值为1的数据位,获取不同数据位的标识,其数据为标识分别为3和17,将3和17添加到更新信息中,将更新信息发送到服务器,服务器接收到更新信息时,根据更新信息中的3和17,确定第一布隆过滤值数据位标识为3和17,将整两个数据位数值进行取反,进而,达到对第一布隆过滤值进行更新的目的。
当删除一个好友账户后,第三布隆过滤值数据位数值为1的数据位标识分别为1为1、4和20,对比第一布隆过滤值数据位数值为1的数据位与第三布隆过滤值数据位数值为1的数据位,获取不同数据位的标识,其数据为标识分别为9和13,将9和13添加到更新信息中,将更新信息发送到服务器,服务器接收到更新信息时,根据更新信息中的9和13,确定第一布隆过滤值数据位标识为9和13,将整两个数据位数值进行取反,进而,达到对第一布隆过滤值进行更新的目的。
在上述实施中,只需要对第一布隆过滤值的相应数据位进行修改,便可以达到更新第一布隆过滤值的目的。该方法不需要对第一布隆过滤值的所有数据位进行遍历,节省了大量遍历时需要的时间。
在该过程中,当第一终端检测到第一布隆过滤值发生变化时,不需要再次向服务器上传第三布隆过滤值,只需上传第三布隆过滤值相对于第一布隆过滤值有变化的数据位对应的标识,不需要上传第三布隆过滤值。当服务器接收到更新信息时,该更新信息中包含更新布隆过滤器的数据位对应的标识,根据这些标识,只需要确定第一布隆过滤值的相应数据位,并对第一布隆过滤值的相应数据位进行修改,便可以达到更新第一布隆过滤值的目的。该方法不需要对第一布隆过滤值的所有数据位进行遍历,节省了大量遍历时需要的时间。
在步骤405中,当服务器接收到第二终端发送的第二账户对第一账户的即时通信消息时,将第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值。
其中,第二账户为即时消息的发送方,第二账户的使用者可以是恶意攻击者,也可以是正常用户。
在实施中,当第二账户为恶意攻击者时,第二账户会不断对第一账户发送消息,占用第一账户的带宽,从而,实现对第一终端的消息攻击,使得第一终端不能接受到其他账户的消息。为防止上述发生,需要采取以下步骤;服务器接收到第二账户登陆的第二终端发送的即时通信消息,该即时通信消息中包括第二账户的账户标识、第一账户的账户标识和需要发送到第一账户的消息。获取即时通信消息中的第一账户的账户标识,输入布隆过滤器,获取第二布隆过滤值。依据第一账户的账户标识,获取服务器存储的第一账户的第一布隆过滤值。将第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位进行对比,获取对比结果。
需要说明的是,将第二账户标识输入布隆过滤器,获取第二布隆过滤值,其中上述中的布隆过滤器是安装在服务器中的。
在步骤406中,如果第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值相同,则向第一终端转发即时通信消息。
其中,有效数据位是指布隆过滤值中数据位数值为1的数据位。
在实施中,服务器接收到第二账户登陆的第二终端发送的即时通信消息,该即时通信消息中包括第二账户的账户标识、第一账户的账户标识和需要发送到第一账户的消息。获取即时通信消息中的第一账户的账户标识,输入布隆过滤器,获取第二布隆过滤值。依据第一账户的账户标识,获取服务器存储的第一账户的第一布隆过滤值。如果第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值不同,则服务器将该即时通信消息进行丢弃,如果第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值相同,确定第二账户与第一账户的好友关系,向第一账户登陆的第一终端转发该即时通信消息。
进一步的,确定第二布隆过滤值中数值为1的数据位的标识。在第一布隆过滤值中,确定标识对应的数据位,如果标识对应的数据位的数值均为1,则向第一终端转发即时通信消息。
例如,第一布隆过滤值数据位数值为1的数据位标识分别为1、4、9、13和20,当第二布隆过滤值数据位数值为1的数据位标识分别为1为1和3,确定第一布隆过滤值数据位标识为1和3的数据位,数据位标识为1的数据位数值为1,数据位标识为3的数据位数值为0,由此,确定第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值不相同,对第二账户发送的即时通信消息进行丢弃。当第二布隆过滤值数据位数值为1的数据位标识分别为1为1和4时,确定第一布隆过滤值数据位标识为1和4的数据位,数据位标识为1的数据位数值为1,数据位标识为4的数据位数值为1,由此,确定第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值相同,对第二账户发送的即时通信消息进行转发。
当第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值不同时,则说明第二账户的账户标识一定不在第一账户的好友账户标识中。当第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值相同,说明第二账户的账户标识可能存在第一账户的好友账户标识中,需要进行下一步处理。
在步骤407中,第一终端接收服务器发送的即时通信消息。
在实施中,在第一终端接收到服务器发送的即时通信消息之后,获取该即时通信消息中的第二账户的账户标识。获取第一终端中存储的第一账户的各个好友账户的账户标识列表,如果好友账户标识列表中不包括第二账户的账户标识,则丢弃即时通信消息。
其中,上述实施过程,由于当好友数量较少时,第一终端随机产生了一定量的好友,或者由于布隆过滤器本身的特性,会产生误判,都会接收到不是第一账户的好友账户的账发送的消息。只有利用好友标识列表判断为好友的账户,确定是第一账户的好友账户时,才会对该即时通信信息进行展示。
图5为本申请施例提供的一种传输即时通信消息的方法的示意图,在该示意图中,第一终端向服务器发送第一布隆过滤值,并存储在服务器中,当服务器接收到第二终端发送的即时通信消息时,服务器获取该即时通信消息中的第二账户的账户标识,将第二账户的账户标识输入布隆过滤器中,获取第二布隆过滤值,将第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位对比。当第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值相同,向第一终端发送即时通信息。当第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值不同时,将该即时通信消息进行丢弃。
基于相同的技术构思,本申请实施例还提供了一种装置,该装置用于服务器,如图6所示,该装置包括:
接收模块610,用于接收第一账户登录的第一终端发送的第一布隆过滤值,其中,第一布隆过滤值是将第一账户的各好友账户的账户标识输入布隆过滤器得到的布隆过滤值;
确定模620,用于当接收到第二终端发送的第二账户对第一账户的即时通信消息时,将第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值;
转发模块630,用于如果第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值相同,则向第一终端转发即时通信消息。
可选的,接收模610,用于:
当接收到第一账户登录的第一终端发送的对应第一布隆过滤值的更新信息时,基于更新信息对第一布隆过滤值进行更新,其中,更新信息包括发生数值更新的数据位的标识。
可选的,转发模块630,用于:
确定第二布隆过滤值中数值为1的数据位的标识;
在第一布隆过滤值中,确定标识对应的数据位的数值,如果标识对应的数据位的数值均为1,则向第一终端转发即时通信消息。
基于相同的技术构思,本申请实施例还提供了一种装置,该装置用于第一终端,如图7所示,该装置包括:
获取模块710,用于获取本地登录的第一账户的好友账户列表中的各好友账户的账户标识;
确定模块720,用于基于各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值;
发送模块730,用于向服务器发送第一布隆过滤值,其中,第一布隆过滤值,用于指示服务器当接收到第二终端发送的第二账户对第一账户的即时通信消息时,将第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值,如果第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值相同,则向第一终端转发即时通信消息;
接收模块740,用于接收服务器发送的即时通信消息。
可选的,第一布隆过滤值确定模块720,还用于:
如果第一账户的好友账户列表中的好友账户的数目大于或等于预设阈值,则将各好友账户的账户标识,输入布隆过滤器,生成第一布隆过滤值;
如果第一账户的好友账户列表中的好友账户的数目小于预设的数目阈值,则随机生成预设数目的账户标识,将各好友账户的账户标识和随机生成的账户标识,输入布隆过滤器,生成第一布隆过滤值,其中,预设数目大于或等于数目阈值。
可选的,发送模块730,还用于:
当检测到第一账户的好友账户列表发生变化时,将变化后的好友账户列表中的各好友账户的账户标识,输入布隆过滤器,得到第三布隆过滤值;
确定第三布隆过滤值相对于第一布隆过滤值发生数值更新的数据位的标识;
向服务器发送对应第一布隆过滤值的更新信息,其中,更新信息包括发生数值更新的数据位的标识。
可选的,接收模块740,还用于:
如果第二账户的账户标识在第一账户的各好友账户的账户标识中,对第一账户进行展示第二账户对第一账户的即时通信消息。
如果好友账户列表中不包括第二账户的账户标识,则丢弃即时通信消息。
本申请实施例还提供一种传输即时通信消息的系统,其特征在于,系统包括终端和服务器,其中:
服务器,用于接收第一账户登录的第一终端发送的第一布隆过滤值,其中,第一布隆过滤值是将第一账户的各好友账户的账户标识输入布隆过滤器得到的布隆过滤值;当接收到第二终端发送的第二账户对第一账户的即时通信消息时,将第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值;如果第二布隆过滤值的有效数据位与第一布隆过滤值对应的数据位的数值相同,则向第一终端转发即时通信消息。
终端,用于获取本地登录的第一账户的好友账户列表中的各好友账户的账户标识;基于各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值;向服务器发送第一布隆过滤值;接收服务器发送的即时通信消息。
需要说明的是:上述实施例提供的传输即时通信消息的装置在传输即时通信消息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的传输即时通信消息的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8是本发明实施例提供的一种终端的结构示意图,该终端可以是上述实施例中的第一终端。该终端800可以是:智能手机、平板电脑、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端800还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端800包括有:一个或多个处理器801和一个或多个存储器802。
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本发明中方法实施例提供的传输即时通信消息的方法。
在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、显示屏805、摄像头806、音频电路807、定位组件808和电源809中的至少一种。
外围设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路804用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本发明对此不加以限定。
显示屏805用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置终端800的前面板;在另一些实施例中,显示屏805可以为至少两个,分别设置在终端800的不同表面或呈折叠设计;在再一些实施例中,显示屏805可以是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。
定位组件808用于定位终端800的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件808可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源809用于为终端800中的各个组件进行供电。电源809可以是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。
加速度传感器811可以检测以终端800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器812可以检测终端800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端800的3D动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器813可以设置在终端800的侧边框和/或显示屏805的下层。当压力传感器813设置在终端800的侧边框时,可以检测用户对终端800的握持信号,由处理器801根据压力传感器813采集的握持信号进行左右手识别或快捷操作。当压力传感器813设置在显示屏805的下层时,由处理器801根据用户对显示屏805的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器814用于采集用户的指纹,由处理器801根据指纹传感器814采集到的指纹识别用户的身份,或者,由指纹传感器814根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器801授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器814可以被设置终端800的正面、背面或侧面。当终端800上设置有物理按键或厂商Logo时,指纹传感器814可以与物理按键或厂商Logo集成在一起。
光学传感器815用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器815采集的环境光强度,控制显示屏805的显示亮度。具体地,当环境光强度较高时,调高显示屏805的显示亮度;当环境光强度较低时,调低显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器815采集的环境光强度,动态调整摄像头组件806的拍摄参数。
接近传感器816,也称距离传感器,通常设置在终端800的前面板。接近传感器816用于采集用户与终端800的正面之间的距离。在一个实施例中,当接近传感器816检测到用户与终端800的正面之间的距离逐渐变小时,由处理器801控制显示屏805从亮屏状态切换为息屏状态;当接近传感器816检测到用户与终端800的正面之间的距离逐渐变大时,由处理器801控制显示屏805从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图8中示出的结构并不构成对终端800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图9是本发明实施例提供的一种服务器的结构示意图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(central processing units,CPU)901和一个或多个的存储器902,其中,该一个或多个存储器902中存储有至少一条程序代码,该至少一条程序代码由该一个或多个处理器901加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器900还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器900还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的传输即时通信消息的方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之中。
Claims (12)
1.一种传输即时通信消息的方法,其特征在于,应用于服务器,所述方法包括:
接收第一账户登录的第一终端发送的第一布隆过滤值,其中,所述第一布隆过滤值是将所述第一账户的各好友账户的账户标识输入布隆过滤器得到的布隆过滤值;
当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值;
如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息。
2.根据权利要求1所述的方法,其特征在于,所述接收第一账户登录的第一终端发送的第一布隆过滤值之后,所述方法还包括:
当接收到所述第一账户登录的第一终端发送的对应所述第一布隆过滤值的更新信息时,基于所述更新信息对所述第一布隆过滤值进行更新,其中,所述更新信息包括发生数值更新的数据位的标识。
3.根据权利要求1所述的方法,其特征在于,如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息,包括:
确定所述第二布隆过滤值中数值为1的数据位的标识;
在所述第一布隆过滤值中,确定所述标识对应的数据位的数值,如果所述标识对应的数据位的数值均为1,则向所述第一终端转发所述即时通信消息。
4.一种传输即时通信消息的方法,其特征在于,应用于第一终端,所述方法包括:
获取本地登录的第一账户的好友账户列表中的各好友账户的账户标识;
基于所述各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值;
向服务器发送所述第一布隆过滤值,其中,所述第一布隆过滤值,用于指示所述服务器当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值,如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息;
接收所述服务器发送的所述即时通信消息。
5.根据权利要求4所述的方法,其特征在于,所述基于所述各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值,包括:
如果所述第一账户的好友账户列表中的好友账户的数目大于或等于预设阈值,则将所述各好友账户的账户标识,输入布隆过滤器,生成第一布隆过滤值;
如果所述第一账户的好友账户列表中的好友账户的数目小于预设的数目阈值,则随机生成预设数目的账户标识,将所述各好友账户的账户标识和随机生成的账户标识,输入布隆过滤器,生成第一布隆过滤值,其中,所述预设数目大于或等于所述数目阈值。
6.根据权利要求4所述的方法,其特征在于,所述向服务器发送所述第一布隆过滤值之后,所述方法还包括:
当检测到所述第一账户的好友账户列表发生变化时,将变化后的好友账户列表中的各好友账户的账户标识,输入布隆过滤器,得到第三布隆过滤值;
确定所述第三布隆过滤值相对于所述第一布隆过滤值发生数值更新的数据位的标识;
向所述服务器发送对应所述第一布隆过滤值的更新信息,其中,所述更新信息包括所述发生数值更新的数据位的标识。
7.根据权利要求4所述的方法,其特征在于,接收所述服务器发送的所述即时通信消息之后,包括:
如果所述好友账户列表中不包括所述第二账户的账户标识,则丢弃所述即时通信消息。
8.一种传输即时通信消息的装置,其特征在于,所述装置包括:
接收模块,用于接收第一账户登录的第一终端发送的第一布隆过滤值,其中,所述第一布隆过滤值是将所述第一账户的各好友账户的账户标识输入布隆过滤器得到的布隆过滤值;
确定模块,用于当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值;
转发模块,用于如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息。
9.一种传输即时通信消息的装置,其特征在于,所述装置包括:
获取模块,用于获取本地登录的第一账户的好友账户列表中的各好友账户的账户标识;
确定模块,用于基于所述各好友账户的账户标识和布隆过滤器,生成第一布隆过滤值;
发送模块,用于向服务器发送所述第一布隆过滤值,其中,所述第一布隆过滤值,用于指示所述服务器当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值,如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息;
接收模块,用于接收所述服务器发送的所述即时通信消息。
10.一种传输即时通信消息的系统,其特征在于,所述系统包括第一终端、第二终端和服务器,其中:
所述服务器,用于接收第一账户登录的第一终端发送的第一布隆过滤值,其中,所述第一布隆过滤值是将所述第一账户的各好友账户的账户标识输入布隆过滤器得到的布隆过滤值;当接收到第二终端发送的第二账户对所述第一账户的即时通信消息时,将所述第二账户的账户标识,输入布隆过滤器,得到第二布隆过滤值;如果所述第二布隆过滤值的有效数据位与所述第一布隆过滤值对应的数据位的数值相同,则向所述第一终端转发所述即时通信消息。
所述第一终端,用于获取本地登录的第一账户的好友账户列表中的各好友账户的账户标识;基于所述各好友账户的账户标识和布隆过滤器,生成所述第一布隆过滤值;向所述服务器发送所述第一布隆过滤值;接收所述服务器发送的所述即时通信消息。
11.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至7任一项所述的传输即时通信消息的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至7任一项所述的传输即时通信消息的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910777972.4A CN110380956B (zh) | 2019-08-22 | 2019-08-22 | 一种传输即时通信消息的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910777972.4A CN110380956B (zh) | 2019-08-22 | 2019-08-22 | 一种传输即时通信消息的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110380956A true CN110380956A (zh) | 2019-10-25 |
CN110380956B CN110380956B (zh) | 2021-06-08 |
Family
ID=68260370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910777972.4A Active CN110380956B (zh) | 2019-08-22 | 2019-08-22 | 一种传输即时通信消息的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110380956B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113965536A (zh) * | 2021-10-19 | 2022-01-21 | 广州华多网络科技有限公司 | 消息令牌更新方法及其装置、设备、介质、产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103348633A (zh) * | 2011-03-21 | 2013-10-09 | 苹果公司 | 用于管理不同的服务提供方之间的点对点连接的装置和方法 |
US20140218461A1 (en) * | 2013-02-01 | 2014-08-07 | Maitland M. DeLand | Video Conference Call Conversation Topic Sharing System |
CN104660494A (zh) * | 2015-02-11 | 2015-05-27 | 任宝刚 | 一种通信系统 |
CN105577505A (zh) * | 2014-10-14 | 2016-05-11 | 北京信威通信技术股份有限公司 | 跨平台即时通信系统及其消息互通方法 |
CN106302110A (zh) * | 2016-08-04 | 2017-01-04 | 福建师范大学 | 一种基于隐私保护的社交网络位置共享方法 |
WO2018222347A1 (en) * | 2017-06-02 | 2018-12-06 | Apple Inc. | Methods and systems for providing query suggestions |
CN109005104A (zh) * | 2018-07-19 | 2018-12-14 | 腾讯科技(深圳)有限公司 | 一种即时通信方法、装置、服务器及存储介质 |
-
2019
- 2019-08-22 CN CN201910777972.4A patent/CN110380956B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103348633A (zh) * | 2011-03-21 | 2013-10-09 | 苹果公司 | 用于管理不同的服务提供方之间的点对点连接的装置和方法 |
US20140218461A1 (en) * | 2013-02-01 | 2014-08-07 | Maitland M. DeLand | Video Conference Call Conversation Topic Sharing System |
CN105577505A (zh) * | 2014-10-14 | 2016-05-11 | 北京信威通信技术股份有限公司 | 跨平台即时通信系统及其消息互通方法 |
CN104660494A (zh) * | 2015-02-11 | 2015-05-27 | 任宝刚 | 一种通信系统 |
CN106302110A (zh) * | 2016-08-04 | 2017-01-04 | 福建师范大学 | 一种基于隐私保护的社交网络位置共享方法 |
WO2018222347A1 (en) * | 2017-06-02 | 2018-12-06 | Apple Inc. | Methods and systems for providing query suggestions |
CN109005104A (zh) * | 2018-07-19 | 2018-12-14 | 腾讯科技(深圳)有限公司 | 一种即时通信方法、装置、服务器及存储介质 |
Non-Patent Citations (4)
Title |
---|
AUHNAYUIL: ""简化布隆过滤器——BitMap"", 《博客园,HTTPS://WWW.CNBLOGS.COM/CHENJUNPING/P/6968409.HTML》 * |
YANG YU,等: ""A novel content based and social network aided online spam short message filter"", 《PROCEEDINGS OF THE 10TH WORLD CONGRESS ON INTELLIGENT CONTROL AND AUTOMATION》 * |
孙欣然: ""面向移动社交网络中朋友发现的隐私保护技术研究"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
落红卫,等: ""垃圾即时通信研究与防治"", 《电信网技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113965536A (zh) * | 2021-10-19 | 2022-01-21 | 广州华多网络科技有限公司 | 消息令牌更新方法及其装置、设备、介质、产品 |
CN113965536B (zh) * | 2021-10-19 | 2023-06-02 | 广州华多网络科技有限公司 | 消息令牌更新方法及其装置、设备、介质、产品 |
Also Published As
Publication number | Publication date |
---|---|
CN110380956B (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881030B (zh) | 灰度发布场景下的路由方法及装置 | |
CN109905318A (zh) | 设备控制方法、装置及存储介质 | |
CN110061900B (zh) | 消息显示方法、装置、终端及计算机可读存储介质 | |
CN110213608A (zh) | 显示虚拟礼物的方法、装置、设备及可读存储介质 | |
CN113542290B (zh) | 数据访问请求的处理方法、装置、设备及可读存储介质 | |
CN110309243A (zh) | 获取实景电子地图的方法、装置、设备和存储介质 | |
CN111866140B (zh) | 融合管理设备、管理系统、服务调用方法及介质 | |
CN111131531B (zh) | 聊天群组中的昵称生成方法、装置及可读存储介质 | |
CN110189137A (zh) | 刷脸支付的方法、装置、设备及存储介质 | |
CN110365501A (zh) | 基于图形码进行群组加入处理的方法及装置 | |
CN110032384A (zh) | 资源更新的方法、装置、设备及存储介质 | |
CN109684278A (zh) | 文件获取方法、装置、终端及存储介质 | |
CN109522146A (zh) | 对客户端进行异常测试的方法、装置及存储介质 | |
CN110196673A (zh) | 图片交互方法、装置、终端及存储介质 | |
CN111970298B (zh) | 应用访问方法、装置、存储介质及计算机设备 | |
CN111884913B (zh) | 消息提示方法、装置、终端及存储介质 | |
CN109445963A (zh) | 内容分享方法、装置、设备及计算机可读存储介质 | |
CN109871497A (zh) | 分享信息的方法和装置 | |
CN111556188B (zh) | 通话的方法、装置、电子设备及介质 | |
CN110380956A (zh) | 一种传输即时通信消息的方法、装置及系统 | |
CN110597840A (zh) | 基于区块链的伴侣关系建立方法、装置、设备及存储介质 | |
CN112083983A (zh) | 提醒消息的发送方法、接收方法、终端、装置及介质 | |
CN109451168A (zh) | 生成铃声文件的方法、装置及存储介质 | |
CN109107163A (zh) | 模拟按键检测方法、装置、计算机设备及存储介质 | |
CN111158780B (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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20191025 Assignee: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd. Assignor: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd. Contract record no.: X2021440000031 Denomination of invention: The invention relates to a method, a device and a system for transmitting instant messaging messages License type: Common License Record date: 20210125 |
|
EE01 | Entry into force of recordation of patent licensing contract | ||
GR01 | Patent grant | ||
GR01 | Patent grant |