vue+django實現(xiàn)一對一聊天和消息推送的功能。主要是通過websocket,由于Django不支持websocket,所以我使用了django-channels??紤]到存儲量的問題,我并沒有把聊天信息存入數(shù)據(jù)庫,服務端的作用相當于一個中轉(zhuǎn)站。我只講述實現(xiàn)功能的結(jié)構(gòu)性代碼,具體的實現(xiàn)還請大家看源代碼。
專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)遼源免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。前端聊天界面
前端消息提醒界面
后端代碼
效果展示
實現(xiàn)過程
后端
首先,我們需要先定義websocket的兩條連接路徑。ws/chat/xxx/(xxx指代聊天組)這條路徑是當聊天雙方都進入同一個聊天組以后,開始聊天的路徑。push/xxx/(xxx指代用戶名)這條是指當有一方不在聊天組,另一方的消息將通過這條路徑推送給對方。ws/chat/xxx/只有雙方都進入聊天組以后才開啟,而push/xxx/是自用戶登錄以后,直至退出都開啟的。
websocket_urlpatterns = [ url(r'^ws/chat/(?P[^/]+)/$', consumers.ChatConsumer), url(r'^push/(?P [0-9a-z]+)/$', consumers.PushConsumer), ]