2017-06-22 119 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