在python中使用websocket

2021-06-13 06:51:52 字數 1716 閱讀 4331

介紹一款很帥的外掛程式autobahnpython,通過它可以在python中很方便的使用websocket進行通訊(基於twisted框架)。

這個外掛程式真正強大的地方是它提供了乙個 發布/訂閱模式,具體內容有空再寫,先簡單介紹一下如何建立傳統的連線。

建立伺服器:

# 必須的模組

from twisted.internet import reactor

from autobahn.websocket import websocketserve***ctory, \

websocketserverprotocol, \

listenws

# 繼承websocketserverprotocol類

class myserverprotocol(websocketserverprotocol):

# 建立websocket時呼叫的函式

def onopen(self):

print "open"

# websocket關閉時呼叫的函式,其中wasclean指示是否正常關閉,code指示關閉狀態,reason指示原因

def onclose(self, wasclean, code, reason):

print "close"

# 收到訊息後的處理函式,其中binary指示是字串形式還是二進位制

def onmessage(self, msg, binary):

print msg

# 傳送訊息,binary意義同上

self.sendmessage(msg, binary)

# 傳送訊息,預設字串形式

self.sendmessage(msg)

if __name__ == '__main__':

factory = websocketserve***ctory("ws://localhost:9000")

factory.protocol = myserverprotocol

listenws(factory)

reactor.run()

客戶端:

# 必須的模組

from twisted.internet import reactor

from autobahn.websocket import websocketclientfactory, \

websocketclientprotocol, \

connectws

class myclientprotocol(websocketclientprotocol):

# 連線建立時呼叫的函式

def onopen(self):

# 傳送訊息

self.sendmessage("hello, world!")

# 收到訊息後的處理函式,引數意義同上

def onmessage(self, msg, binary):

print "got: " + msg

if __name__ == '__main__':

factory = websocketclientfactory("ws://localhost:9000", debug = false)

factory.protocol = myclientprotocol

connectws(factory)

reactor.run()

在Python中使用 slots

這篇文章主要介紹了在python中使用 slots 方法的詳細教程,slots 方法是python的乙個重要內建類方法,基於python2.x版本,需要的朋友可以參考下 正常情況下,當我們定義了乙個class,建立了乙個class的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。...

with語句在Python中使用

引言 with語句生於python2.5,通過 from future import with statement 匯入後使用 2.6以後無需匯入直接使用 with 語句適用於對資源進行訪問的場合,確保不管使用過程中是否發生異常都會執行必要的 清理 操作,釋放資源 用途 最常用的兩個地方,檔案使用後...

在Python中使用MYSQL

緣由 近期在折騰乙個小東西須要抓取網上的頁面。然後進行解析。將結果放到 資料庫中。了解到python在這方面有優勢,便選用之。由於我有臺 server上面安裝有 mysql,自然使用之。在進行資料庫的這個操作過程中遇到了不少問題,這裡 記錄一下,大家共勉。python中mysql的呼叫 之後能夠通過...