Skip to content

Commit b2c8859

Browse files
committed
Make Driver.send() handle binary-encoded strings as binary messages
1 parent a47ebbd commit b2c8859

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

faye-websocket.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
1414
s.files = %w[CHANGELOG.md LICENSE.md README.md] + Dir.glob('lib/**/*.rb')
1515

1616
s.add_dependency 'eventmachine', '>= 0.12.0'
17-
s.add_dependency 'websocket-driver', '>= 0.5.1'
17+
s.add_dependency 'websocket-driver', '>= 0.8.0'
1818

1919
s.add_development_dependency 'permessage_deflate'
2020
s.add_development_dependency 'progressbar'

lib/faye/websocket/api.rb

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,20 @@ def write(data)
6565

6666
def send(message)
6767
return false if @ready_state > OPEN
68+
6869
case message
69-
when Numeric then @driver.text(message.to_s)
70-
when String then @driver.text(message)
71-
when Array then @driver.binary(message)
72-
else false
70+
when Numeric then
71+
@driver.text(message.to_s)
72+
when String then
73+
if message.encoding == Encoding::UTF_8
74+
@driver.text(message)
75+
else
76+
@driver.binary(message)
77+
end
78+
when Array then
79+
@driver.binary(message)
80+
else
81+
false
7382
end
7483
end
7584

0 commit comments

Comments
 (0)