django websocket简单实现聊天室

websocket是什么

WebSocketd是WebSocket的守护进程(命令行工具),负责处理WebSocket连接,并启动服务器应用程序来处理WebSockets,在应用程序和Web浏览器之间传递消息,无需任意依赖包且进程独立。WebSocketd是一款非常特别的WebSocket服务器,它的最大特点是后台脚本不限语言,其标准输入stdin就是WebSocket的输入,标准输出stdout就是WebSocket的输出。

WebSocketd本质上是命令行的WebSocket代理,只要在命令行可以执行的程序,都可以通过它与浏览器进行WebSocket通信。

后端views

import json
from dwebsocket.decorators import accept_websocket

ws_dict = {
   }  # 存所有客户的 客户端对象
kf_dict = {
   }
ws_set = set()

@accept_websocket
def chat(request):
    print('建立ws链接')
    ws = request.websocket
    ua = request.headers.get('user-agent')
    ip = request.META.get('REMOTE_ADDR')
    ws_id = '%s_%s' % (ip, ua)
    ws_dict[ws_id] = ws
    for data_ in ws:  # 当ws给服务端发消息的时候, 就取到一个数据
        # 处理每次收到的消息
        data = json.loads(data_.decode())  # 发送的是json数据
        print(data)
        action = data.get('action')  # 数据用途, 动作,
        if action == 'all_ws':
            # 获取所有的客户,  客服用这个功能
            ws_list = list(ws_dict.keys())
            msg = json.dumps({
   'action': 'all_ws', 'ws_list': ws_list})
            ws.send(msg
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值