标签:通过 django rom cal print result render dem click
后台代码:
url:::
url(r‘^echo_cc/(?P<userid>[0-9]+)/(?P<sendid>[0-9]+)$‘, views.echo_c, name=‘echo‘)
views代码:::
from django.shortcuts import render
from dwebsocket.decorators import accept_websocket, require_websocket
from django.http import HttpResponse
from collections import defaultdict
# Create your views here.
@require_websocket
def echo_once(request):
message = request.websocket.wait()
request.websocket.send(message)
@accept_websocket
def echo(request):
if not request.is_websocket(): # 判断是不是websocket连接
try: # 如果是普通的http方法
message = request.GET[‘message‘]
return HttpResponse(message)
except:
return render(request, ‘index.html‘)
else:
for message in request.websocket:
print(message)
message = input(‘>>>‘)
request.websocket.send(message) # 发送消息到客户端
allconn = defaultdict(list)#连接池
@accept_websocket
def echo_c(request, userid,sendid):
print(userid,sendid)
allresult = {}
# 获取用户信息
userinfo = request.user
allresult[‘userinfo‘] = userinfo
# 声明全局变量
global allconn
if not request.is_websocket():#判断是不是websocket连接
try:#如果是普通的http方法
message = request.GET[‘message‘]
return HttpResponse(message)
except:
return render(request, ‘myproject/chat.html‘, allresult)
else:
# 将链接(请求?)存入全局字典中
allconn[str(userid)] = request.websocket
# 遍历请求地址中的消息
for message in request.websocket:
# 将信息发至自己的聊天框
# request.websocket.send(message)
# 将信息发至其他所有用户的聊天框
allconn[str(sendid)].send(message)
# for i in allconn:
# if i != str(userid):
# allconn[i].send(message)
html代码::::
django+jquery+websocket+dwebsocket实现客户端直接发送消息
标签:通过 django rom cal print result render dem click
原文地址:https://www.cnblogs.com/alecc1124/p/13183616.html