python 實現weisocket服務端用到的庫爲:websocket-server 0.4 :
https://pypi.org/project/websocket-server/0.4/
https://github.com/Pithikos/python-websocket-server
服務端代碼:
#coding:utf-8
from lib.socket.websocket_server import WebsocketServer
def startWebsocketServer():
def new_client(client, server):
server.send_message_to_all("Hey all, a new client has joined us")
def mysend(client,server,msg):
print(msg)
server.send_message(client,"哈哈哈哈哈")
if(msg == "_end"): #如果收到了_end 消息,那麼斷開連接
server.server_close()
server = WebsocketServer(5005, host='127.0.0.1', loglevel=logging.INFO)
server.set_fn_new_client(new_client)
server.set_fn_message_received(mysend)
server.run_forever()
server.server_close()
if __name__ == "__main__":
startWebsocketServer()
網頁端代碼:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>websocket測試</title>
<script type="text/javascript">
ws = null;
i = 1;
(function(){
ws = null;
i = 1;
})()
function WebSocketTest()
{
if ("WebSocket" in window)
{
console.log("您的瀏覽器支持 WebSocket!");
ws = new WebSocket("ws://127.0.0.1:5005");
ws.onopen = function()
{
// Web Socket 已連接上,使用 send() 方法發送數據
//ws.send("hello world !");
console.log("socket 已經連接上!")
};
ws.onmessage = function (evt)
{
var received_msg = evt.data;
console.log(evt.data)
};
ws.onclose = function()
{
// 關閉 websocket
alert("連接已關閉...");
};
}
else
{
// 瀏覽器不支持 WebSocket
console.log("您的瀏覽器不支持 WebSocket!");
}
}
function sendMsg(){
ws.send("hello world" + i++);
}
function myclose(){
ws.send("_end");
ws.close()
console.log("執行了斷開連接...")
}
</script>
</head>
<body>
<div id="sse">
<button onclick="WebSocketTest()">連接服務器</button>
<button onclick="sendMsg()">發送消息</button>
<button onclick="myclose()">斷開連接</button>
</div>
</body>
</html>