安裝dwebsocket
https://github.com/StanleyLe/Utils/tree/StanleyLe-patch-1
下載到本地 在命令行中切換到壓縮到的文件夾執(zhí)行
python setup.py install
簡(jiǎn)單使用
<script type="text/javascript">
var socket = new WebSocket("ws:" + window.location.host + "/drug/drug_connect/");
socket.onopen = function () {
console.log('WebSocket open');//成功連接上Websocket
socket.send('adasdasda。。。。');//發(fā)送數(shù)據(jù)到服務(wù)端
};
socket.onmessage = function (e) {
console.log('message: ' + e.data);//打印服務(wù)端返回的數(shù)據(jù)
};
socket.onclose=function(e){
console.log(e);
socket.close(); //關(guān)閉TCP連接
};
if (socket.readyState == WebSocket.OPEN) socket.onopen();
</sctipt>
drug/urls.py
url(r'drug_connect/$', views.drug_connect, name='drug_connect'),
drug/views.py
from dwebsocket.decorators import accept_websocket
@accept_websocket
def drug_socket(request):
if request.is_websocket():
try:
while 1:
message = request.websocket.wait() # 接受前段發(fā)送來的數(shù)據(jù)
if message:
message = bytes.decode(message)
if message != '886':
try:
receive_data = RFID_cls.getRFID()
if receive_data:
request.websocket.send(receive_data.encode()) # 發(fā)送給前段的數(shù)據(jù)
time.sleep(1)
except Exception as e:
request.websocket.close()
return
else:
print('socket請(qǐng)求關(guān)閉?。?!')
request.websocket.close()
return
except Exception as e:
try:
request.websocket.close()
return
except:
return