Hash of frame names and it's opcodes
Hash of frame opcodes and it's names
# File lib/websocket/frame/handler/handler07.rb, line 30 def decode_frame result = super if has_close_code?(result) code = result.data.slice!(0..1) result.code = code.unpack('n').first raise WebSocket::Error::Frame::UnknownCloseCode unless valid_code?(result.code) raise WebSocket::Error::Frame::InvalidPayloadEncoding unless valid_encoding?(result.data) end result end
# File lib/websocket/frame/handler/handler07.rb, line 20 def encode_frame if @frame.type == :close code = @frame.code || 1000 raise WebSocket::Error::Frame::UnknownCloseCode unless valid_code?(code) @frame.data = Data.new([code].pack('n') + @frame.data.to_s) @frame.code = nil end super end
# File lib/websocket/frame/handler/handler07.rb, line 55 def has_close_code?(frame) frame && frame.type == :close && !frame.data.empty? end
Convert frame opcode to type name @param [Integer] opcode Opcode @return [Symbol] Frame type name or nil @raise [WebSocket::Error] if frame type name is not known
# File lib/websocket/frame/handler/handler07.rb, line 71 def opcode_to_type(opcode) FRAME_TYPES_INVERSE[opcode] || raise(WebSocket::Error::Frame::UnknownOpcode) end
Convert frame type name to opcode @param [Symbol] frame_type Frame type name @return [Integer] opcode or nil @raise [WebSocket::Error] if frame opcode is not known
# File lib/websocket/frame/handler/handler07.rb, line 63 def type_to_opcode(frame_type) FRAME_TYPES[frame_type] || raise(WebSocket::Error::Frame::UnknownFrameType) end
# File lib/websocket/frame/handler/handler07.rb, line 43 def valid_code?(code) [1000,1001,1002,1003,1007,1008,1009,1010,1011].include?(code) || (3000..4999).include?(code) end
# File lib/websocket/frame/handler/handler07.rb, line 47 def valid_encoding?(data) return true if data.nil? || !data.respond_to?(:encode) data.encode('UTF-8') true rescue false end