目前官方版本的nnmsg,在多轮测试中,只有调查模式存在问题。
从官方论坛也能看到具体老大自己的描述。https://bbs.aardio.com/forum.php?mod=viewthread&tid=21998&highlight=nnmsg
所以如果在不需要使用调查模式:surveyor/respondent套接字,在这个情况下,是可以直接使用官方库的。
Nanomsg用起来有几大优势,除了支持 tcp /ws协议外,还支持inproc 和ipc协议。
使用:inproc://test 则可以在进程内,进行通信
使用:ipc:// 协议,则可以在本机的进程间通信。
且nnmsg没有状态要求,对与客户端或者服务端谁先上线没有要求。
再说说极简的nnmsg存在的一些不习惯之处,nnmsg更关注于消息本身,这样就导致客户端和服务端没有状态维护,不知道对方是否已经连接。
所以如果要实现这些功能,就需要自己进行功能上的封装,如心跳机制,需要二次加工。
因为个人需要,需要使用到调查模式,所以利用.net的nanomsg版本封装了一个库。
其实查看net的版本,也发现实际上还是调用的原生的nanomsg版本dll,这个版本比较旧,目前能用,至于其他bug不确定,毕竟太旧了。
所以,.net版本封装的nnmsg,实际上是在曲线救国,用.net来调用dll,我们再通过aar调用.net的dll文件,就是在套娃,解决方案并不优秀。
不过起码实现了功能:
附件是范例和封装好的库文件,
放在目录:~\lib\yang\ 下即可运行范例查看