avplayer / avim

IM for avplayer
http://avplayer.org/avim
29 stars 17 forks source link

RSA 公钥的本地缓存和查找功能 #4

Closed microcai closed 9 years ago

microcai commented 9 years ago

aver 需要对发送出去的信息加密。使用的是收方的公钥加密。 就需要一个机制获取和缓存对方的公钥。

microcai commented 9 years ago

目前实现上遇到了一个比较难的难点,就是在对方公钥的获取上。

按照协议,发送信息的流程是这样的:

本地查找对方公钥 if ( 没找到) { 发送 pkask 消息请求 等待对方回应 }

这里,等待对方回应在软件实现上会比较棘手,因为对方的回应是异步到达的,不可能直接等在 async_read 读取数据包上,何况 asio 也不支持这种多重 async_read 调用。因为在另一个地方已经在不停的调用 async_read 接收数据包了。

那么,要怎么样简便的实现所要的异步等一个特定数据包到达的功能呢?

microcai commented 9 years ago

恩, 通过一个比较通用的 async_wait_packet 机制解决了.