recherche

Maison  >  Questions et réponses  >  le corps du texte

S'il vous plaît dites-moi comment connecter Websocket en python

Je travaille actuellement sur un projet qui nécessite l'utilisation de websocket. J'ai besoin de python pour me connecter au websocket, mais je ne sais pas comment utiliser python pour me connecter au websocket, je le recherche depuis longtemps. temps et je ne l'ai pas trouvé. S'il vous plaît, aidez-moi ~~

phpcn_u1582phpcn_u15822752 Il y a quelques jours889

répondre à tous(3)je répondrai

  • 我想大声告诉你

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

    flask est déployé à l'aide de gevent-websocket + gunicorn

    pip3 install gevent-websocket
    pip3 install gunicorn

    app.py démo

    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()

    Utilisez gunicorn pour démarrer et spécifier gevent-websocket

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

    django utilise Django-websocket

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

    répondre
    0
  • 为情所困

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

    Merci à tous, je n'ai pas trouvé de solution sur Baidu depuis longtemps. Le master ci-dessus devrait pouvoir l'utiliser, mais je ne le comprends pas très bien Merci, j'ai vraiment gagné quelque chose en allant sur Google. , j'ai donc définitivement abandonné Baidu

    C'est sur le github de quelqu'un d'autre, vous pouvez l'utiliser

    # 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()

    répondre
    0
  • 怪我咯

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

    Il est recommandé d'utiliser tornado, qui prend en charge websocket. Le backend de Zhihu est construit en utilisant tornado

    .

    répondre
    0
  • Annulerrépondre