python websocket server模块_Python | WebSocketServer

'''

Host a multiplayer sever via WebSocket protocol

https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers

'''

import base64

import hashlib

import socket

from struct import pack, unpack

import threading

import json

class WebSocketConn:

def __init__(self, conn):

self.conn = conn

request = self.conn.recv(1024).strip().decode('utf-8', 'ignore').split('\r\n')

# parse headers into dict

self.headers = dict([line.split(': ', 1) for line in request[1:]])

# perform WebSocket handshake

self._handshake()

def _handshake(self):

key = self.headers.get('Sec-WebSocket-Key') + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'

resp_key = base64.standard_b64encode(hashlib.sha1(key.encode()).digest()).decode()

res_header = {

'Upgrade': 'websocket',

'Connection': 'Upgrade',

'Sec-WebSocket-Accept': resp_key,

}

response = 'HTTP/1.1 101 Switching Protocols\r\n'

for i in res_header:

response += '%s: %s\r\n' % (i, res_header[i])

response += '\r\n'

self.conn.se

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值