2016-01-20 33 views
2

我試圖在使用MQTT進行消息傳遞的服務器應用程序與網頁中實時查看消息併發送回來的「通信線路」消息發送到服務器端應用程序。如何使用Bottle和MQTT獲得全雙工websocket

我在服務器上使用mosquitto,Bottle和gevent,我想盡可能保持簡單。使用GEVENT我設法得到一個greenlet的MQTT消息,把它們放在一個隊列,併發送郵件到網頁看起來像這樣WebSocket的過程中:

while True: 
    mqt = queue.get(True) 
    ws.send(mqt) 

我還可以從網頁發送短信返回到服務器和MQTT這樣的(也可以通過隊列):

while True: 
    msg = ws.receive() 
    queue2.put(msg) 

不過,我想這兩個迴路在同一時間對同一WebSocket的工作。有什麼方法可以將它們結合起來嗎?例如接收是否有超時?我想我可以使用兩個獨立的網絡套接字,但如果我只能使用一個套接字,那將是一種浪費。

回答

2

爲什麼不直接通過Websockets使用MQTT將消息直接傳遞到頁面?有許多經紀人支持Websockets,並且paho JavaScript客戶端允許訂閱和發佈消息

+0

好主意,儘管我不喜歡編譯所有東西,因爲默認情況下它並不會與websocket支持:) – rslite

+0

什麼平臺?大多數預編譯的二進制文件應該包含這些日子的websocket(除了Fedora,我很想修復它) – hardillb

+0

我在Ubuntu 14.04 LTS上,剛剛意識到它配備了mosquitto 0.15。我編譯並運行1.4.4版本。可能是更新我的服務器的時候,但我沒有太多時間在我的手上 – rslite

相關問題