久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

python - 關(guān)于基于tornado的websocket服務(wù)在本機上調(diào)試的問題

瀏覽:129日期:2022-08-10 18:00:41

問題描述

我啟動了一個簡單的tornado服務(wù)器,代碼如下

import tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webimport tornado.websocketimport jsonclass IndexHandler(tornado.web.RequestHandler): def get(self):self.render('index.html')class ChatHandler(tornado.websocket.WebSocketHandler): users = set() def open(self):ChatHandler.users.add(self) def on_message(self, message):jsonObject = json.loads(message)for user in ChatHandler.users: print(user) self.write_message(jsonObject['message']) def on_close(self):ChatHandler.users.remove(self)if __name__ == ’__main__’: app = tornado.web.Application(handlers=[ (r'/', IndexHandler), (r'/ws',ChatHandler)] ) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(12345) tornado.ioloop.IOLoop.instance().start()

現(xiàn)在的問題是,我分別在edge和chrome瀏覽器中通過localhost:12345訪問的時候,當(dāng)在某一個瀏覽器中發(fā)送消息的時候,想實現(xiàn)的效果是兩個頁面都能收到該消息。但實際的情況是只有發(fā)出消息的瀏覽器頁面會收到兩個MessageEvent,請問該如何解決這個問題?

問題解答

回答1:

self.write_message(jsonObject['message'])

意思是,從誰那里收到的消息,就發(fā)給誰。有幾個人在線發(fā)幾次。

而你需要的是,不管從誰那里收到消息,都給每個在線的發(fā)一份。誰在線呢?當(dāng)然是正在被迭代的 user 了。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 乌拉特后旗| 呼玛县| 茌平县| 仁化县| 湟源县| 金堂县| 蒙自县| 武穴市| 长岭县| 龙胜| 巴南区| 罗源县| 米泉市| 定安县| 土默特左旗| 浑源县| 钟山县| 肃宁县| 邛崃市| 榆林市| 杭锦旗| 涪陵区| 高陵县| 敦煌市| 孟村| 内丘县| 富阳市| 双城市| 商都县| 三都| 延安市| 铜梁县| 永安市| 怀仁县| 贵德县| 渝北区| 邯郸县| 长沙县| 清苑县| 西华县| 屯留县|