python简单实现websocketWord版.doc

上传人:rrsccc 文档编号:9416897 上传时间:2021-02-24 格式:DOC 页数:8 大小:35.50KB
返回 下载 相关 举报
python简单实现websocketWord版.doc_第1页
第1页 / 共8页
python简单实现websocketWord版.doc_第2页
第2页 / 共8页
python简单实现websocketWord版.doc_第3页
第3页 / 共8页
python简单实现websocketWord版.doc_第4页
第4页 / 共8页
python简单实现websocketWord版.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《python简单实现websocketWord版.doc》由会员分享,可在线阅读,更多相关《python简单实现websocketWord版.doc(8页珍藏版)》请在三一文库上搜索。

1、传播优秀Word版文档 ,希望对您有帮助,可双击去除!python简单实现websocket协议选择的是新的Hybi-10,参考文章如下:http:/ coding:utf8 -*-import threadingimport hashlibimport socketimport base64class websocket_thread(threading.Thread): def _init_(self, connection): super(websocket_thread, self)._init_() self.connection = connection def run(self)

2、: print new websocket client joined! reply = i got u, from websocket server. length = len(reply) while True: data = self.connection.recv(1024) print parse_data(data) self.connection.send(%c%c%s % (0x81, length, reply) def parse_data(msg): v = ord(msg1) & 0x7f if v = 0x7e: p = 4 elif v = 0x7f: p = 10

3、传播优秀Word版文档 ,希望对您有帮助,可双击去除! else: p = 2 mask = msgp:p+4 data = msgp+4: return .join(chr(ord(v) ord(maskk%4) for k, v in enumerate(data) def parse_headers(msg): headers = header, data = msg.split(rnrn, 1) for line in header.split(rn)1: key, value = line.split(: , 1) headerskey = value headersdata = d

4、ata return headersdef generate_token(msg): key = msg + 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 ser_key = hashlib.sha1(key).digest() return base64.b64encode(ser_key) if _name_ = _main_: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) so

5、ck.bind(127.0.0.1, 9000) sock.listen(5) while True: connection, address = sock.accept() try: data = connection.recv(1024) headers = parse_headers(data) token = generate_token(headersSec-WebSocket-Key) connection.send(HTTP/1.1 101 WebSocket Protocol Hybi-10rnUpgrade: WebSocketrnConnection: UpgradernS

6、ec-WebSocket-Accept: %srnrn % token) thread = websocket_thread(connection) thread.start() except socket.timeout:传播优秀Word版文档 ,希望对您有帮助,可双击去除! print websocket connection timeout测试页面: WebSocketTest 来自服务端的消息传播优秀Word版文档 ,希望对您有帮助,可双击去除! var socket; function connect() var host = ws:/ + $(serverIP).value + :

7、 + $(serverPort).value + / socket = new WebSocket(host); try socket.onopen = function (msg) $(btnConnect).disabled = true; alert(连接成功!); ; socket.onmessage = function (msg) if (typeof msg.data = string) displayContent(msg.data); else alert(非文本消息); ; socket.onclose = function (msg) alert(socket close

8、d!) ; catch (ex) log(ex); function send() var msg = $(sendText).value socket.send(msg); 传播优秀Word版文档 ,希望对您有帮助,可双击去除! window.onbeforeunload = function () try socket.close(); socket = null; catch (ex) ; function $(id) return document.getElementById(id); Date.prototype.Format = function (fmt) /author: m

9、eizz var o = M+: this.getMonth() + 1, /月份 d+: this.getDate(), /日 h+: this.getHours(), /小时 m+: this.getMinutes(), /分 s+: this.getSeconds(), /秒 q+: Math.floor(this.getMonth() + 3) / 3), /季度 S: this.getMilliseconds() /毫秒 ; if (/(y+)/.test(fmt) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + ).substr

10、(4 - RegExp.$1.length); for (var k in o) if (new RegExp( + k + ).test(fmt) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length = 1) ? (ok) : (00 + ok).substr( + ok).length); return fmt; function displayContent(msg) $(txtContent).value += rn +new Date().Format(yyyy/MM/dd hh:mm:ss)+ : + msg; 传播优秀Word版文档 ,希望对您有帮助,可双击去除! function onkey(event) if (event.keyCode = 13) send();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1