[Python] Websocket Example
使用Systemctl啟動服務Service,裡面使用到的範例是啟動Websocket Server,還沒講解到怎麼建立Websocekt Client去跟Server做溝通,現在就以很簡單的例子來做教學。
先來看一下SimpleWebSocketServer所提供的範例:
這個範例是Client端送訊息到Server端,不管內容是什麼就回傳回去,例如:
Client : Hello!
Server: Hello!
這樣就可以確定Server跟Client之間的溝通是沒有問題的,我在使用Systemctl啟動服務Service這篇文章中,已經把Websocket Server建成服務了,所以server已經在系統上執行了,接著我們開始來製作一個Websocket Client。
這邊使用的是Websocket-Client所提供的範例:
與Websocket Server建立連線後,Websocket Client端會發送三次的Hello,那麼Websocket Server就會回應三次的Hello,以下就來看看運行的結果:
執行結果如上圖,表示在背景的Webscoket Server跟Webscoket Client,連線有確實建立起來,傳送訊息也正常。
先來看一下SimpleWebSocketServer所提供的範例:
from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket class SimpleEcho(WebSocket): def handleMessage(self): # echo message back to client self.sendMessage(self.data) def handleConnected(self): print(self.address, 'connected') def handleClose(self): print(self.address, 'closed') server = SimpleWebSocketServer('127.0.0.1', 8866, SimpleEcho) server.serveforever()
這個範例是Client端送訊息到Server端,不管內容是什麼就回傳回去,例如:
Client : Hello!
Server: Hello!
這樣就可以確定Server跟Client之間的溝通是沒有問題的,我在使用Systemctl啟動服務Service這篇文章中,已經把Websocket Server建成服務了,所以server已經在系統上執行了,接著我們開始來製作一個Websocket Client。
這邊使用的是Websocket-Client所提供的範例:
import websocket try: import thread except ImportError: import _thread as thread import time def on_message(ws, message): print("receive: " + message) def on_error(ws, error): print(error) def on_close(ws): print("### closed ###") def on_open(ws): def run(*args): for i in range(3): time.sleep(1) print("send: Hello %d" % i) ws.send("Hello %d" % i) time.sleep(1) ws.close() print("thread terminating...") thread.start_new_thread(run, ()) if __name__ == "__main__": websocket.enableTrace(True) ws = websocket.WebSocketApp("ws://127.0.0.1:8866", on_message = on_message, on_error = on_error, on_close = on_close) ws.on_open = on_open ws.run_forever()
與Websocket Server建立連線後,Websocket Client端會發送三次的Hello,那麼Websocket Server就會回應三次的Hello,以下就來看看運行的結果:
執行結果如上圖,表示在背景的Webscoket Server跟Webscoket Client,連線有確實建立起來,傳送訊息也正常。
感謝大大分享
回覆刪除