From 11eedea13350fc4b586cc0a3195ab3c7690ba237 Mon Sep 17 00:00:00 2001 From: fuyuton Date: Wed, 19 Feb 2020 21:51:02 +0900 Subject: [PATCH 1/7] Added to use SNI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SNIを利用するために必要なコードを追加 --- lib/websocket-client-simple/client.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/websocket-client-simple/client.rb b/lib/websocket-client-simple/client.rb index 128f523..b855672 100644 --- a/lib/websocket-client-simple/client.rb +++ b/lib/websocket-client-simple/client.rb @@ -27,6 +27,7 @@ def connect(url, options={}) cert_store.set_default_paths ctx.cert_store = cert_store @socket = ::OpenSSL::SSL::SSLSocket.new(@socket, ctx) + @socket.hostname = uri.host @socket.connect end @handshake = ::WebSocket::Handshake::Client.new :url => url, :headers => options[:headers] From 75ce9649d593f95d03ad3e9a4738d4137a19e698 Mon Sep 17 00:00:00 2001 From: fuyuton Date: Thu, 7 May 2020 21:10:18 +0900 Subject: [PATCH 2/7] =?UTF-8?q?close=3F=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/websocket-client-simple/client.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/websocket-client-simple/client.rb b/lib/websocket-client-simple/client.rb index b855672..879b138 100644 --- a/lib/websocket-client-simple/client.rb +++ b/lib/websocket-client-simple/client.rb @@ -96,6 +96,10 @@ def open? @handshake.finished? and !@closed end + def close? + @closed + end + end end From 0112c75706f5005d0d7e5863d66a828a88a28826 Mon Sep 17 00:00:00 2001 From: fuyuton Date: Fri, 4 Dec 2020 22:53:09 +0900 Subject: [PATCH 3/7] add reference variable --- Gemfile.lock | 2 +- lib/websocket-client-simple/client.rb | 3 ++- lib/websocket-client-simple/version.rb | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index a8d88b6..b90ebb8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -33,4 +33,4 @@ DEPENDENCIES websocket-eventmachine-server BUNDLED WITH - 1.11.2 + 1.17.3 diff --git a/lib/websocket-client-simple/client.rb b/lib/websocket-client-simple/client.rb index 879b138..ca48f5d 100644 --- a/lib/websocket-client-simple/client.rb +++ b/lib/websocket-client-simple/client.rb @@ -11,7 +11,7 @@ def self.connect(url, options={}) class Client include EventEmitter - attr_reader :url, :handshake + attr_reader :url, :handshake, :message def connect(url, options={}) return if @socket @@ -56,6 +56,7 @@ def connect(url, options={}) else frame << recv_data while msg = frame.next + @message = msg emit :message, msg end end diff --git a/lib/websocket-client-simple/version.rb b/lib/websocket-client-simple/version.rb index 3caf775..421618c 100644 --- a/lib/websocket-client-simple/version.rb +++ b/lib/websocket-client-simple/version.rb @@ -1,7 +1,7 @@ module WebSocket module Client module Simple - VERSION = "0.3.0" + VERSION = "0.3.2" end end end From 9eab078a336d6f0e9de42b85d0c51aa6103b76c6 Mon Sep 17 00:00:00 2001 From: fuyuton Date: Sun, 13 Dec 2020 23:16:51 +0900 Subject: [PATCH 4/7] Update websocket-client-simple.gemspec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 依存関係にあるgemのバージョン番号の追加 --- websocket-client-simple.gemspec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/websocket-client-simple.gemspec b/websocket-client-simple.gemspec index 73866d6..7175419 100644 --- a/websocket-client-simple.gemspec +++ b/websocket-client-simple.gemspec @@ -18,11 +18,11 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"] spec.add_development_dependency "bundler", "~> 1.3" - spec.add_development_dependency "rake" - spec.add_development_dependency "minitest" - spec.add_development_dependency "websocket-eventmachine-server" - spec.add_development_dependency "eventmachine" + spec.add_development_dependency "rake", ">= 0" + spec.add_development_dependency "minitest", ">= 0" + spec.add_development_dependency "websocket-eventmachine-server", ">= 0" + spec.add_development_dependency "eventmachine", "~> 1.2.7" - spec.add_dependency "websocket" - spec.add_dependency "event_emitter" + spec.add_dependency "websocket", "~> 1.2.8" + spec.add_dependency "event_emitter", "~> 0.2.6" end From 87fd96008e71472fdfa44b6d458ae16eb157404f Mon Sep 17 00:00:00 2001 From: fuyuton Date: Sun, 13 Dec 2020 23:25:06 +0900 Subject: [PATCH 5/7] Update websocket-client-simple.gemspec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 依存関係にあるジェムのバージョン番号の追加 --- websocket-client-simple.gemspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/websocket-client-simple.gemspec b/websocket-client-simple.gemspec index 7175419..b60f05b 100644 --- a/websocket-client-simple.gemspec +++ b/websocket-client-simple.gemspec @@ -18,8 +18,8 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"] spec.add_development_dependency "bundler", "~> 1.3" - spec.add_development_dependency "rake", ">= 0" - spec.add_development_dependency "minitest", ">= 0" + spec.add_development_dependency "rake", "~> 12.3.2" + spec.add_development_dependency "minitest", "~> 5.11.3" spec.add_development_dependency "websocket-eventmachine-server", ">= 0" spec.add_development_dependency "eventmachine", "~> 1.2.7" From 3f455717022bc17bd079ab7cf54252dc120e5059 Mon Sep 17 00:00:00 2001 From: fuyuton Date: Mon, 28 Dec 2020 23:15:43 +0900 Subject: [PATCH 6/7] fix SSLError --- lib/websocket-client-simple/client.rb | 3 +++ lib/websocket-client-simple/version.rb | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/websocket-client-simple/client.rb b/lib/websocket-client-simple/client.rb index ca48f5d..d73a512 100644 --- a/lib/websocket-client-simple/client.rb +++ b/lib/websocket-client-simple/client.rb @@ -78,6 +78,9 @@ def send(data, opt={:type => :text}) rescue Errno::EPIPE => e @pipe_broken = true emit :__close, e + rescue OpenSSL::SSL::SSLError => e + @pipe_broken = true + emit :__close, e end end diff --git a/lib/websocket-client-simple/version.rb b/lib/websocket-client-simple/version.rb index 421618c..f14258a 100644 --- a/lib/websocket-client-simple/version.rb +++ b/lib/websocket-client-simple/version.rb @@ -1,7 +1,7 @@ module WebSocket module Client module Simple - VERSION = "0.3.2" + VERSION = "0.3.3" end end end From 874a9e2255565588cbb008b7cc7640712d452102 Mon Sep 17 00:00:00 2001 From: fuyuton Date: Tue, 26 Jan 2021 00:47:04 +0900 Subject: [PATCH 7/7] add tcp_nodelay --- lib/websocket-client-simple/client.rb | 1 + lib/websocket-client-simple/version.rb | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/websocket-client-simple/client.rb b/lib/websocket-client-simple/client.rb index d73a512..a97bc19 100644 --- a/lib/websocket-client-simple/client.rb +++ b/lib/websocket-client-simple/client.rb @@ -19,6 +19,7 @@ def connect(url, options={}) uri = URI.parse url @socket = TCPSocket.new(uri.host, uri.port || (uri.scheme == 'wss' ? 443 : 80)) + @socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1) if ['https', 'wss'].include? uri.scheme ctx = OpenSSL::SSL::SSLContext.new ctx.ssl_version = options[:ssl_version] || 'SSLv23' diff --git a/lib/websocket-client-simple/version.rb b/lib/websocket-client-simple/version.rb index f14258a..e8b2573 100644 --- a/lib/websocket-client-simple/version.rb +++ b/lib/websocket-client-simple/version.rb @@ -1,7 +1,7 @@ module WebSocket module Client module Simple - VERSION = "0.3.3" + VERSION = "0.3.4" end end end