mirror of
https://github.com/faye/websocket-driver-ruby.git
synced 2025-11-01 13:59:38 +00:00
Merge pull request #95 from mackuba/binary_format
added :binary_data_format option
This commit is contained in:
+15
-8
@@ -71,15 +71,16 @@ module WebSocket
|
||||
|
||||
def initialize(socket, options = {})
|
||||
super()
|
||||
Driver.validate_options(options, [:max_length, :masking, :require_masking, :protocols])
|
||||
Driver.validate_options(options, [:max_length, :masking, :require_masking, :protocols, :binary_data_format])
|
||||
|
||||
@socket = socket
|
||||
@reader = StreamReader.new
|
||||
@options = options
|
||||
@max_length = options[:max_length] || MAX_LENGTH
|
||||
@headers = Headers.new
|
||||
@queue = []
|
||||
@ready_state = 0
|
||||
@socket = socket
|
||||
@reader = StreamReader.new
|
||||
@options = options
|
||||
@max_length = options[:max_length] || MAX_LENGTH
|
||||
@headers = Headers.new
|
||||
@queue = []
|
||||
@ready_state = 0
|
||||
@binary_data_format = options[:binary_data_format] || :array
|
||||
end
|
||||
|
||||
def state
|
||||
@@ -224,6 +225,12 @@ module WebSocket
|
||||
raise ConfigurationError, "Unrecognized option: #{ key.inspect }"
|
||||
end
|
||||
end
|
||||
|
||||
if options[:binary_data_format]
|
||||
unless [:array, :string].include?(options[:binary_data_format])
|
||||
raise ConfigurationError, "Invalid :binary_data_format: #{options[:binary_data_format].inspect}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.websocket?(env)
|
||||
|
||||
@@ -403,7 +403,9 @@ module WebSocket
|
||||
payload = Driver.encode(payload, Encoding::UTF_8)
|
||||
payload = nil unless payload.valid_encoding?
|
||||
when OPCODES[:binary]
|
||||
payload = payload.bytes.to_a
|
||||
if @binary_data_format == :array
|
||||
payload = payload.bytes.to_a
|
||||
end
|
||||
end
|
||||
|
||||
if payload
|
||||
|
||||
Reference in New Issue
Block a user