class WebSocket::Driver::Hybi
def send_frame(frame)
def send_frame(frame) length = frame.length header = (length <= 125) ? 2 : (length <= 65535 ? 4 : 10) offset = header + (frame.masked ? 4 : 0) buffer = [] masked = frame.masked ? MASK : 0 buffer[0] = (frame.final ? FIN : 0) | (frame.rsv1 ? RSV1 : 0) | (frame.rsv2 ? RSV2 : 0) | (frame.rsv3 ? RSV3 : 0) | frame.opcode if length <= 125 buffer[1] = masked | length elsif length <= 65535 buffer[1] = masked | 126 buffer[2..3] = [length].pack(PACK_FORMATS[2]).bytes.to_a else buffer[1] = masked | 127 buffer[2..9] = [length].pack(PACK_FORMATS[8]).bytes.to_a end if frame.masked buffer.concat(frame.masking_key.bytes.to_a) buffer.concat(Mask.mask(frame.payload, frame.masking_key).bytes.to_a) else buffer.concat(frame.payload.bytes.to_a) end @socket.write(buffer.pack('C*')) end