首頁  >  問答  >  主體

請教一下,python怎麼連接websocket

現在在做一個項目,需要用到websocket,需要python去連接websocket,但是不知道怎麼用python連接websocket,找了好久沒找到,求各位大佬幫忙~~

#
phpcn_u1582phpcn_u15822711 天前844

全部回覆(3)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-05-18 10:56:01

    flask 使用 gevent-websocket + gunicorn 部署

    pip3 install gevent-websocket
    pip3 install gunicorn

    app.py demo

    from geventwebsocket.handler import WebSocketHandler
    from gevent.pywsgi import WSGIServer
    
    app = Flask(__name__)
    
    @app.route('/echo/')
    def echo():
        if request.environ.get('wsgi.websocket'):
            ws = request.environ['wsgi.websocket']
            while True:
                msg = ws.receive()
                ws.send(msg)
    
    if __name__ == '__main__':
        http_server = WSGIServer(('', 5000), app, handler_class=WebSocketHandler)
        http_server.serve_forever()

    使用 gunicorn 啟動 指定用 gevent-websocket

    gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker app:app

    django 使用 Django-websocket

    https://github.com/archever/p...

    回覆
    0
  • 为情所困

    为情所困2017-05-18 10:56:01

    感謝各位,百度了好久都找不到解決辦法,樓上這位大神的應該可以用的,不過我看不太懂,感恩,上谷歌果然有收穫,果斷棄用百度

    這是別人github上面的,可以用

    # install ws4py
    # pip install ws4py
    # easy_install ws4py
    from ws4py.client.threadedclient import WebSocketClient
    
    class DummyClient(WebSocketClient):
        def opened(self):
            self.send("www.baidu.com")
    
        def closed(self, code, reason=None):
            print "Closed down", code, reason
    
        def received_message(self, m):
            print m
    
    if __name__ == '__main__':
        try:
            ws = DummyClient('ws://10.222.138.163:1889/websocket', protocols=['chat'])
            ws.connect()
            ws.run_forever()
        except KeyboardInterrupt:
            ws.close()

    回覆
    0
  • 怪我咯

    怪我咯2017-05-18 10:56:01

    建議使用tornado,它支援websocket,知乎後端就是使用tornado建構的

    回覆
    0
  • 取消回覆