Maison > Questions et réponses > le corps du texte
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 ~~
我想大声告诉你2017-05-18 10:56:01
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
https://github.com/archever/p...
为情所困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()
怪我咯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
.