2010-07-08 153 views
2

我在C++(非槽/信號)上尋找跨平臺多線程消息隊列實現。如果它基於主題觀察者模式,則更好。消息隊列,C++多線程

+0

在什麼平臺上?你嘗試過什麼?幫助我們幫助你。 – jer 2010-07-08 06:03:15

+0

Windows,Linux平臺。 我正在創建視頻服務器(無gui)。 – dima 2010-07-08 06:07:09

回答

0

您可以試用Apache ActiveMQ。 http://activemq.apache.org。非常健壯。我們將它用於FIX消息傳遞平臺,響應速度也很快,而且配置也很容易。

1

看看SVN存儲庫位於http://svn.storozhilov.com/isl/的ISL開源項目(代表「Internet服務器庫」,C++) - isl :: AbstractMessageBroker類是一個很好的候選人你的工作。對於任何消息代理子系統(DBus,JMS,AMQP等),這是非常簡單但可擴展的框架。每個客戶端由預啓動線程池中的2個線程提供服務:一個用於接收來自傳輸和處理消息的消息,另一個用於將消息發送到傳輸。所以,實際上爲了實現郵件系統,你必須至少覆蓋以下三種虛擬方法:

isl::AbstractMessageBroker::receiveMessage(...); 
    isl::AbstractMessageBroker::processMessage(...); 
    isl::AbstractMessageBroker::sendMessage(...); 

使用的例子是在後備箱/例子/ EchoMessageBroker目錄。響應帶回顯消息的客戶端,終止「bye \ r \ n」消息的連接,在SIGINT上自行終止。