谷歌本地不支持websocket_django开发-websocket的实现
今天介紹下如何在django中使用channels實現(xiàn)websocket。其實還可以使用dwebsocket實現(xiàn)websocket,這里不做介紹。
首先介紹一個概念A(yù)SGI。
ASGI異步網(wǎng)關(guān)協(xié)議接口,一個介于網(wǎng)絡(luò)協(xié)議服務(wù)和Python應(yīng)用之間的標(biāo)準(zhǔn)接口,能夠處理多種通用的協(xié)議類型,包括HTTP,HTTP2和WebSocket。
然而目前的常用的WSGI主要是針對HTTP風(fēng)格的請求響應(yīng)模型做的設(shè)計,并且越來越多的不遵循這種模式的協(xié)議逐漸成為Web變成的標(biāo)準(zhǔn)之一,例如WebSocket。
ASGI嘗試保持在一個簡單的應(yīng)用接口的前提下,提供允許數(shù)據(jù)能夠在任意的時候、被任意應(yīng)用進(jìn)程發(fā)送和接受的抽象。并且同樣描述了一個新的,兼容HTTP請求響應(yīng)以及WebSocket數(shù)據(jù)幀的序列格式。允許這些協(xié)議能通過網(wǎng)絡(luò)或本地socket進(jìn)行傳輸,以及讓不同的協(xié)議被分配到不同的進(jìn)程中。
下面開始介紹下channels
channels是對django的擴(kuò)展,使其可以支持WebSockets, chat protocols, IoT protocols,或者更多。channels基于ASGI。
下面開始介紹channels實現(xiàn)websocket的配置:
1.環(huán)境
python3.6 channels2.1.7 channels-redis2.3.3 django2.0.5 drf3.9.2
2.配置
其中test01是app名稱 DjangoChannel2是項目名稱
test01.routing.py:
test01.consumer.py:
DjangoChannel2.routing.py:
DjangoChannel2.asgi.py:
DjangoChannel2.settings.py:
以上就是配置的過程。
3.前端index.html
其中websocket請求url中
ws://127.0.0.1:8000/ws/status/1/
數(shù)字1可以表示不同客戶端,也可以是2、3等數(shù)字。
經(jīng)過上面的配置后,django中就可以實現(xiàn)websocket功能了。
今天就介紹到這里。有問題環(huán)境私信交流。
總結(jié)
以上是生活随笔為你收集整理的谷歌本地不支持websocket_django开发-websocket的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果 iPhone 15 Pro Max
- 下一篇: win32bridge.server.e