2017-06-22 125 views
1

我想要做的事情可能是不可能的,但在这里。使用python连接到烧瓶websocket

我一直在使用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() 

我现在意识到,我所试图做的已经expla在多个不同的地方进行过多次,我只是没有把这些东西放在一起。希望这可以帮助那些和websocket一样困惑的人。

回答

0
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 
+0

标记为答案,因为虽然我认为我已经尝试过这一点,但再次尝试这种方式最终导致我在一系列研究中结束了解决问题的研究。我的解决方案将在问题中解释。 – Inazuma