我想要做的可能是不可能的,但现在就去了。
我一直在使用Flask一段时间,并使用flask-socketio创建了几个测试,允许用户在通过Web浏览器访问页面时立即进行通信。
但是,我想知道使用套接字模块从Python本身连接服务器时是否可以做到这一点。从同一系统连接到使用套接字模块托管的Python中的套接字非常简单:
import socket
s = socket.socket()
host = socket.gethostname()
port = 12345
s.connect((host, port))
然而,经过一两个小时的研究和实验,我无法弄清楚如何使用这种代码连接到烧瓶内的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()
我现在意识到,我试图做的事情已经在多个不同的地方被多次解释过,我只是没有将这些部分放在一起。希望这会帮助那些像我一样被网页插件困惑的人。
答案 0 :(得分: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