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>