使用Python连接Flask WebSocket

3

我想做的可能不太可能,但还是试一下。

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

然而,我想知道是否可以在Python自身中使用socket模块连接到服务器时实现这种功能。从同一系统中使用socket模块托管的Python中的套接字进行连接非常简单:

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感到困惑的人。

1个回答

2
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 

将此标记为答案,因为尽管我认为我已经尝试过这个方法,但再次尝试最终引导我进行了一系列的研究,最终解决了我的问题。我的解决方案将在问题中解释。 - Inazuma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接