1、以我做的一个简单的案例为例,暂时要做到自己发的信息,只有朋友A收到,需要给发送的连接添加三个信息内容有了收信人,发信人的信息,那么当我们接收到连接发送的消息的时候,就能够特定,这个消息是否是发给自己的了。
2、下一步要想的就是,怎么去做验证。要做验证那么得有验证的对象,也就是说当前用户的信息和应该获得谁的消息的信息,这里我在舞台设置了两个变量去记录这两个信息。sender为当前用户的信息,跟自己做信息交互的人的信息设置为receiver。
3、获取sender的信息很简单就是通过这个去获取,
4、获取receiver的信息,这里我用的是转发链接方式的方式跟别人建立连接,转发的链接打开以后,通过连接把打开转发链接者的信息进行返回。具体过程如下图:事件逐个解释一下,sender_verifier是给舞台设置的一个属性,用来初始化的时候获取当前系统当前用户。
5、第二步,判断条件是sender不等于0,sender不等于sender_verifier(也就是当前用户),这里的意思就是说当前打开的链接是通过转发而来的并且这个链接,因为之前已经记录过舞台sender的信息了,所以就不是默认的0,而且舞台开始记录的sender不是当前的用户。如果满足这个条件就执行,sender跟receiver互换的动作,因为别人的sender相对于收到的人来说其实就是receiver。
6、下一个判断,sender=0(打开的链接是非转发的,也就是第一次打开)那么这个时候,自然就是设置当前的用户为sender了。然后每次设置完sender或者receiver以后都会加一个这样的事件,去把这两个属性的信息记录到链接中。(顺带说一下,转发记录资源是会把信息记录到url中的)。
7、打开转发链接的人经过一轮判断,设置好了发信人和收信人的信息以后,就可以给转发者返回信息了,也就是这一步告诉转发者已经有人连上了。
8、转发者收到这条信息以后,首先判断这条信息是否是发给自己的,这个是大前提,也就是上面的sender等于消息数据收信人的判断。
9、下一个判断,如果receiver=0的时候,就会把消息数据中的发信人,设置为自己的receiver,至此,两个人的连接顺利搭建好了。
10、以后的消息只需要在连接中的消息的收信人等于自己的sender的前提下,判断自己的receiver是否等于消息数据的发信人,如果是就显示消息数据的消息。下面说一下另一个重要的功能,就是断开双方的连接。
11、我添加了一个断开连接的按钮,它要实现的动作就是发送消息给对方告诉它这次会话要结束了,然后设置自己的receiver为0,也就是还原默认值。另一方面,对方接到一条断开连接的消息的时候会进行如下处理
12、首先它判断消息内容是否为断开连接,如果是也进行还原默认值的操作。以上就是实现的原理,细节部分就根据自己的案例进行设计就OK了。