def recv(self): while True: data = self.sock.recv(1024) frm = Frame.decode(data) if frm.opcode == 0x1: # text return str(frm) elif frm.opcode == 0x8: # close self.close() return None elif frm.opcode == 0x9: # ping pong = Frame(opcode=0xA, payload=str(frm)) self.request.send(pong.build())
def handle(self): self.handshake(self.request.recv(1024)) while True: data = self.request.recv(1024) if not len(data): continue # empty data (sent by chrome) frm = Frame.decode(data) frm.unmask() if frm.opcode == 0x1: # text msg = 'you said: ' + str(frm) reply = Frame(payload=msg) self.request.send(reply.build()) elif frm.opcode == 0x8: # close self.close_connection() break elif frm.opcode == 0x9: # ping pong = Frame(opcode=0xA, payload=str(frm)) self.request.send(pong.build()) elif frm.opcode == 0xA: # pong continue
def send(self, msg): frm = Frame(masking_key=self.gen_masking_key(), payload=msg) frm.mask() self.sock.send(frm.build())