关于套接字:使用python连接到Flask WebSocket

Connecting to a flask websocket using python

我尝试做的事情可能无法实现,但是就可以了。

我已经使用Flask了一段时间,并使用flask-socketio创建了多个测试,允许用户在通过Web浏览器访问页面时进行即时通信。

但是,我想知道当使用套接字模块从Python本身连接到服务器时,是否可以实现这种目的。从同一个系统连接到使用套接字模块托管的Python套接字,非常简单:

1
2
3
4
5
import socket
s = socket.socket()
host = socket.gethostname()
port = 12345
s.connect((host, port))

但是,经过一两个小时的研究和实验,我无法弄清楚如何使用这种代码连接烧瓶中的websocket设置。

任何帮助(或只是告诉我这是不可能的)将不胜感激!

=====编辑=====

因此,借助@Aravind,我提出了一个仅使用python的客户端服务器解决方案的简单示例:

服务器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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)

客户:

1
2
3
4
5
import websocket
from websocket import create_connection
ws = create_connection("ws://127.0.0.1:12345/echo")
ws.send("hello world")
ws.recv()

现在我意识到,我试图做的事情已经在多个不同的地方被多次解释,而我只是没有将各个部分放在一起。希望这将对像我一样对websocket感到困惑的其他人有所帮助。


1
2
3
4
5
6
7
import websocket
from websocket import create_connection
ws = create_connection("127.0.0.1:12345")
#ws.close() for closing
#ws.send()enter code here
#ws.recv()
#pip install websocket-client