本篇文章小编给大家分享一下django中websocket的具体使用方法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
websocket是一种持久化的协议,HTTP协议是一种无状态的协议,在特定场合我们需要使用长连接,做数据的实时更新,这种情况下我们就可以使用websocket做持久连接。http与websocket二者存在交集。
后端:
from dwebsocket.decorators import accept_websocket import json # 存储连接websocket的用户 clist = [] @accept_websocket def websocketLink(request): # 获取连接 if request.is_websocket: # 新增 用户 连接信息 clist.append(request.websocket) # 监听接收客户端发送的消息 或者 客户端断开连接 for message in request.websocket: break # 发送消息 def websocketMsg(client, msg): b1 = json.dumps(msg,ensure_ascii=False).encode('utf-8') client.send(b1) # 服务端发送消息 def sendmsg(): sql = "select * from customer" res = db1.find_all(sql) if len(clist)>0: for i in clist: i.send(json.dumps({'list': res},ensure_ascii=False).encode('utf-8')) # websocketMsg(i, {'list': res}) return HttpResponse("ok") from apscheduler.schedulers.blocking import BlockingScheduler def getecharts(request): scheduler = BlockingScheduler() scheduler.add_job(sendmsg,'interval',seconds=1) scheduler.start() return HttpResponse('ok')
前端:
http://api.map.baidu.com/marker {{infolist1}}