小編給大家分享一下django創(chuàng)建websocket的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
站在用戶的角度思考問題,與客戶深入溝通,找到泰興網(wǎng)站設(shè)計(jì)與泰興網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋泰興地區(qū)。
伴隨著HTML5推出的WebSocket,真正實(shí)現(xiàn)了Web的實(shí)時(shí)通信,使B/S模式具備了C/S模式的實(shí)時(shí)通信能力。WebSocket的工作流程是這 樣的:瀏覽器通過JavaScript向服務(wù)端發(fā)出建立WebSocket連接的請(qǐng)求,在WebSocket連接建立成功后,客戶端和服務(wù)端就可以通過 TCP連接傳輸數(shù)據(jù)。因?yàn)閃ebSocket連接本質(zhì)上是TCP連接,不需要每次傳輸都帶上重復(fù)的頭部數(shù)據(jù),所以它的數(shù)據(jù)傳輸量比輪詢和Comet技術(shù)小了很多。
安裝dwebsocket
安裝方法:
1.通過pip
pip install dwebsocket2
2.通過下載到本地
解壓,執(zhí)行 python setup.py install
使用方法
如果你想為一個(gè)單獨(dú)的視圖處理一個(gè)websocklet連接可以使用accept_websocket裝飾器,它會(huì)將標(biāo)準(zhǔn)的HTTP請(qǐng)求路由到視圖中。使用require_websocke裝飾器只允許使用WebSocket連接,會(huì)拒絕正常的HTTP請(qǐng)求。
在設(shè)置中添加設(shè)置MIDDLEWARE_CLASSES=dwebsocket.middleware.WebSocketMiddleware這樣會(huì)拒絕單獨(dú)的視圖實(shí)用websocket,必須加上accept_websocket 裝飾器。
設(shè)置WEBSOCKET_ACCEPT_ALL=True可以允許每一個(gè)單獨(dú)的視圖實(shí)用websockets
一些方法和屬性
1.request.is_websocket()
如果是個(gè)websocket請(qǐng)求返回True,如果是個(gè)普通的http請(qǐng)求返回False,可以用這個(gè)方法區(qū)分它們。
2.request.websocket
在一個(gè)websocket請(qǐng)求建立之后,這個(gè)請(qǐng)求將會(huì)有一個(gè)websocket屬性,用來給客戶端提供一個(gè)簡(jiǎn)單的api通訊,如果request.is_websocket()是False,這個(gè)屬性將是None。
3.WebSocket.wait()
返回一個(gè)客戶端發(fā)送的信息,在客戶端關(guān)閉連接之前他不會(huì)返回任何值,這種情況下,方法將返回None
4.WebSocket.read()
如果沒有從客戶端接收到新的消息,read方法會(huì)返回一個(gè)新的消息,如果沒有,就不返回。這是一個(gè)替代wait的非阻塞方法
5.WebSocket.count_messages()
返回消息隊(duì)列數(shù)量
6.WebSocket.has_messages()
如果有新消息返回True,否則返回False
7.WebSocket.send(message)
向客戶端發(fā)送消息
8.WebSocket.__iter__()
websocket迭代器
看完了這篇文章,相信你對(duì)django創(chuàng)建websocket的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!