(self, message)
| 205 | return True |
| 206 | |
| 207 | def send_message(self, message): |
| 208 | if not self.handshake_done: |
| 209 | self._log.warning("ignoring message %s (handshake not done)" % message[:10]) |
| 210 | return False |
| 211 | |
| 212 | if message[0] == "2": |
| 213 | i = 0 |
| 214 | |
| 215 | self._log.debug('send_message: %s... -> %s' % (message[:10], self.client_address)) |
| 216 | out = bytearray() |
| 217 | out.append(129) |
| 218 | length = len(message) |
| 219 | if length <= 125: |
| 220 | out.append(length) |
| 221 | elif 126 <= length <= 65535: |
| 222 | out.append(126) |
| 223 | out += struct.pack('>H', length) |
| 224 | else: |
| 225 | out.append(127) |
| 226 | out += struct.pack('>Q', length) |
| 227 | if not pyLessThan3: |
| 228 | message = message.encode('utf-8') |
| 229 | out = out + message |
| 230 | |
| 231 | readable, writable, errors = select.select([], [self.request,], [], self.server.websocket_timeout_timer_ms) #last parameter is timeout, when 0 is non blocking |
| 232 | #self._log.debug('socket status readable=%s writable=%s errors=%s'%((self.request in readable), (self.request in writable), (self.request in error$ |
| 233 | writable = self.request in writable |
| 234 | if not writable: |
| 235 | return False |
| 236 | self.request.sendall(out) |
| 237 | return True |
| 238 | |
| 239 | def handshake(self): |
| 240 | self._log.debug('handshake') |
no test coverage detected