通过pip安装有问题。可直接下载git版,将websocket文件复制到项目中。
*django中(服务端) 独立url数据通信
request.is_websocket() 判断消失是否是websocket请求,True
request.websocket.send() 发送信息,内容只能为字符串或json字符串
request.websocket 从客户端接收到信息的数组
*js中(客户端)
导包
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
script代码
var socket = new WebSocket("ws://" + window.location.host + "/url"); 创建连接对象和地址
socket.onopen = function () { //打开连接,并执行函数
console.log('WebSocket open');//成功连接上Websocket //控制台打印信息
};
socket.onmessage = function (e) { //接收信息,并将信息存放e中
console.log('message: ' + e.data);//打印出服务端返回过来的数据 //控制台打印信息
$('#messagecontainer').prepend('<p>' + e.data + '</p>'); //数据在前端的操作
};
if (socket.readyState == WebSocket.OPEN) socket.onopen(); //如果已经创建对象,则直接打开
功能 对象创建成功后,可直接使用以下功能
1.request.is_websocket()
如果是个websocket请求返回True,如果是个普通的http请求返回False,可以用这个方法区分它们。
2.request.websocket
在一个websocket请求建立之后,这个请求将会有一个websocket属性,用来给客户端提供一个简单的api通讯,如果request.is_websocket()是False,这个属性将是None。
3.WebSocket.wait()
返回一个客户端发送的信息,在客户端关闭连接之前他不会返回任何值,这种情况下,方法将返回None
4.WebSocket.read()
如果没有从客户端接收到新的消息,read方法会返回一个新的消息,如果没有,就不返回。这是一个替代wait的非阻塞方法
5.WebSocket.count_messages()
返回消息队列数量
6.WebSocket.has_messages()
如果有新消息返回True,否则返回False
7.WebSocket.send(message)
向客户端发送消息
学习参考网站: