Python tornado websocker客户端编程
原创
wx5e6caa8b9792d博主文章分类:Python高级编程 ©著作权
文章标签 html tornado sed 文章分类 Python 后端开发
©著作权归作者所有:来自51CTO博客作者wx5e6caa8b9792d的原创作品,请联系作者获取转载授权,否则将追究法律责任
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<a href="javascript:WebSocketTest()">Run WebSockera>
<div id="messages">
div>
body>
<script>
var messageContainer=document.getElementById("messages");
function WebSocketTest() {
if ("WebSocket" in window){
messageContainer.innerHTML='Web Socket is supported by your browser';
var ws=new WebSocket("ws://localhost:8888/websocket?id=1");
ws.onopen=function () {
ws.send("Message To Send");
};
ws.onmessage=function (p1) {
var receivemasg=p1.data;
messageContainer.innerHTML=messageContainer.innerHTML+"
Message is received :"+receivemasg;
};
ws.onclose=function (p1) {
messageContainer.innerHTML=messageContainer.innerHTML+"
Connection is closed .. :"+receivemasg;
}
}else{
messageContainer.innerHTML="您的电脑不支持webSocker";
}
}
script>
html>
#coding:utf-8import tornadofrom tornado.ioloop import IOLoopimport tornado.websocketimport tornado.webfrom tornado.options import define,options,parse_command_linedefine("port",default=8888,help="run on the given port",type=int)clients=dict()class IndexHandler(tornado.web.RequestHandler): @tornado.web.asynchronous def get(self, *args, **kwargs): self.render("../templates/index.html")class MyWebSocketHandler(tornado.websocket.WebSocketHandler): def open(self, *args, **kwargs): self.id=self.get_argument("id") self.stream.set_nodelay(True) clients[self.id]={"id":self.id,"object":self} def on_message(self, message): print("Client %s received a message %s "%(self.id,message)) def on_close(self): if self.id in clients: del clients[self.id] print("Client %s is closed "%self.id) def check_origin(self, origin): return Trueapp=tornado.web.Application(handlers=[ (r"/",IndexHandler), (r"/websocket",MyWebSocketHandler)],static_path="templates")import threadingimport timedef sendTime(): import datetime while True: for key in clients.keys(): msg=str(datetime.datetime.now()) clients[key]["object"].write_message(msg) print("write to client %s :%s"%(key,msg)) time.sleep(1)if __name__ == '__main__': threading.Thread(target=sendTime).start() parse_command_line() app.listen(options.port) IOLoop.instance().start()
- 赞
- 收藏
- 评论
- *举报
上一篇:Python2输出字段不乱码的解决方案包括list,就是这么厉害
下一篇:谷歌浏览器处理访问https网站,处理ssl提示对话框
Original: https://blog.51cto.com/u_14754853/5533288
Author: wx5e6caa8b9792d
Title: Python tornado websocker客户端编程
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504635/
转载文章受原作者版权保护。转载请注明原作者出处!