使用python连接到flask WebSocket

swvgeqrz  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(239)

我想做的也许不可能,但我做到了。
我已经使用Flask有一段时间了,并且已经使用flask-socketio创建了几个测试,允许用户在通过Web浏览器访问页面时立即进行通信。
然而,我想知道当使用socket模块从Python本身连接到服务器时,这种事情是否可能。连接到Python中使用socket模块托管的socket,从同一个系统,就像这样简单:

import socket
s = socket.socket()
host = socket.gethostname()
port = 12345
s.connect((host, port))

字符串
然而,经过一两个小时的研究和实验,我无法弄清楚如何使用这种代码连接到flask内的WebSocket设置。
任何帮助(或只是告诉我,这是不可能的)将不胜感激!
=编辑=
因此,在@Aravind的帮助下,我提出了一个仅使用python的客户端服务器解决方案的简单示例:
伺服器:

from flask import Flask
from flask_sockets import Sockets

app = Flask(__name__)
sockets = Sockets(app)

@sockets.route('/echo')
def echo_socket(ws):
    while not ws.closed:
        message = ws.receive()
        print(message)
        ws.send(message)


委托方:

import websocket
from websocket import create_connection
ws = create_connection("ws://127.0.0.1:12345/echo")
ws.send("hello world")
ws.recv()


我现在意识到,我试图做的事情已经在多个不同的地方解释了很多次,我只是没有把这些碎片放在一起。希望这能帮助任何像我一样对websockets感到困惑的人。

k97glaaz

k97glaaz1#

import websocket
from websocket import create_connection
ws = create_connection("ws://127.0.0.1:12345")
#ws.close() for closing 
#ws.send()enter code here
#ws.recv()
#pip install websocket-client

字符串

相关问题