我们的程序通过一个比较特殊的协议和host computer通讯,很多地方需要用到异步消息队列,也就是client发送消息后不能堵塞,server在特定的情况下才处理消息队列,请问各位大侠qnx是否支持这种消息队列?
目前我的做法还是采用同步的方法,server端开一个自定义的队列来实现,但这样做比较啰嗦,因为很多地方需要用到。
用MQ不可以吗?
POSIX有标准的异步消息队列,Message Queue。
在QNX上有两个Message Queue的实现。一个是标准的 “mqueue”,执行这个服务器,然后你的程序只要使用POSIX标准函数 mq_*()进行通讯就可以了。
另一个实现,服务器叫"mq"。你的程序不用变,只要链接时连接 libmq 就可以了。这种实现速度比第一种快,但缺点是不能通过QNET进行过网络的异步消息传递。
你可以根据你的情形选用。
谢谢两位,刚刚测试过用mq可以满足要求,性能也不错。