websocket-client-simple 0.5.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9419913b098ff41396cbc11f0d3c2495f9cccb03471c79800f929079b1355537
4
- data.tar.gz: 24de10f74455a26bdd20921975f031df322f5c744c5d12b95a071e0f7be48cb8
3
+ metadata.gz: 7589c208daf3fa057d52cc788dafa63401a1c71dd20413d95e8eae0b42a09251
4
+ data.tar.gz: 53a1bed22541edce6f7d64ae140873a8d6b454f854f39c9a7a85ac4bcc78313b
5
5
  SHA512:
6
- metadata.gz: 31b267d997fdfd90d93a6477984614d5a6235bea3400a2c4b22008e1303ae2e801be15c647f50a9b1149bd87564ec4311e378e58d80d6cc1933b558f19d95469
7
- data.tar.gz: 6ea95642df78c178290c1451645aa61ad916b59d8b00767dfefe8e552245eae1b96903e458107506760b0cf3f17c1d1e935f16615c6039b40572767fdb8b7fa7
6
+ metadata.gz: 2c80ac0a53fde73ed53bbe6149b911ffbe053f056d87423700dd58fc4bade8a06aa630ec48b0e6018f6ab7d093e2394d590f407e00c019629061b24f1e05ab6f
7
+ data.tar.gz: fa4c287824fafab4bbca6abc7c23c1a3ca8bb0ff1c0381614f2e579605951870bf2c2850c48bb0c599ae1bb20cc81a319202a89aebe93691e57dccad2bdd6f98
@@ -9,13 +9,13 @@ on:
9
9
  - cron: "0 0 * * 6" # At 00:00 on Saturday
10
10
  jobs:
11
11
  test:
12
- runs-on: ubuntu-20.04
12
+ runs-on: ubuntu-22.04
13
13
  strategy:
14
14
  matrix:
15
- ruby: ["3.1", "3.0", "2.7", "2.6"]
15
+ ruby: ["3.2", "3.1", "3.0", "2.7", "2.6"]
16
16
  name: Ruby ${{ matrix.ruby }}
17
17
  steps:
18
- - uses: actions/checkout@v2
18
+ - uses: actions/checkout@v3
19
19
  - uses: ruby/setup-ruby@v1
20
20
  with:
21
21
  ruby-version: ${{ matrix.ruby }}
data/CHANGELOG.md ADDED
@@ -0,0 +1,88 @@
1
+ # Changelog
2
+
3
+ ## Not yet released
4
+
5
+ ## 0.8.0 - 2023-08-08
6
+ * Set `WebSocket.should_raise = true` https://github.com/ruby-jp/websocket-client-simple/pull/25 by @jlaffaye
7
+
8
+ ## 0.7.0 - 2023-08-04
9
+ * Expose add accessor `Client#thread` #22 by @jlaffaye
10
+ * Rewrite changelog as a Markdown
11
+
12
+ ## 0.6.1 - 2023-03-10
13
+ * Make `#open?` safe to use when `@handshake` is `nil` #20 by @cyberarm
14
+
15
+ ## 0.6.0 - 2022-09-22
16
+ * Add option `cert_store` for passing cert store to SSLSocket context #12 by @DerekStride
17
+ * Set `OpenSSL::SSL::SSLSocket#sync_close` to `true` #12 by @DerekStride
18
+
19
+ ## 0.5.1 - 2022-01-01
20
+ * Add `closed?` method to `WebSocket::Client::Simple` #8 by @fuyuton
21
+ * rescue when `OpenSSL::SSL::SSLError` raised #10 by @fuyuton
22
+
23
+ ## 0.5.0 - 2021-12-31
24
+ * Change TLS context defaults to system's default. The previous defaults were `ssl_version=SSLv23` and `verify_mode=VERIFY_NONE`, which are insecure nowadays. #5
25
+ * thank you for contributing @eagletmt
26
+ * Made the necessary changes to use SNI. #6
27
+ * thank you for contributing @fuyuton
28
+
29
+ ## 0.4.0 - 2021-12-30
30
+ * Drop support of ruby 2.5 or older versions as explicit.
31
+
32
+ ## 0.3.1 - 2021-12-30
33
+ * The development of this repository has moved to https://github.com/ruby-jp/websocket-client-simple
34
+
35
+ ## 0.3.0 - 2016-12-30
36
+ * `connect` method runs a given block before connecting WebSocket [#12](https://github.com/shokai/websocket-client-simple/issues/12)
37
+ * thank you for suggestion @codekitchen
38
+
39
+ ## 0.2.5 - 2016-02-18
40
+ * bugfixed sending when broken pipe [#15](https://github.com/shokai/websocket-client-simple/pull/15)
41
+ * add `:verify_mode` option for SSL Context [#14](https://github.com/shokai/websocket-client-simple/pull/14)
42
+ * thank you for contributing @michaelvilensky
43
+
44
+ ## 0.2.4 - 2015-11-12
45
+ * support handshake headers [#11](https://github.com/shokai/websocket-client-simple/pull/11)
46
+ * thank you for contributing @mathieugagne
47
+
48
+ ## 0.2.3 - 2015-10-26
49
+ * kill thread at end of method [#10](https://github.com/shokai/websocket-client-simple/pull/10)
50
+ * thank you for contributing @hansy
51
+
52
+ ## 0.2.2 - 2014-11-18
53
+ * bugfix socket reading
54
+
55
+ ## 0.2.0 - 2014-06-07
56
+ * SSL support with `wss://` and `https://` scheme [#6](https://github.com/shokai/websocket-client-simple/pull/6)
57
+ * thank you for contributing @mallowlabs
58
+
59
+ ## 0.1.0 - 2014-05-08
60
+ * add accessor `Client#handshake` [#5](https://github.com/shokai/websocket-client-simple/issues/5)
61
+ * bugfix socket reading
62
+
63
+ ## 0.0.9 - 2014-04-03
64
+ * emit `error` in receive thread
65
+ * rescue only `Errno::EPIPE`, not all Errors
66
+
67
+ ## 0.0.8 - 2014-01-29
68
+ * bugfix `Client#close` #4
69
+
70
+ ## 0.0.7 - 2014-01-29
71
+ * send CLOSE frame in `Client#close` [#4](https://github.com/shokai/websocket-client-simple/issues/4)
72
+ ## 0.0.6 - 2014-01-17
73
+ * add function `Client#open?`
74
+
75
+ ## 0.0.5 - 2013-03-23
76
+ * kill read thread on close
77
+
78
+ ## 0.0.4 - 2013-03-23
79
+ * fix sample and README
80
+
81
+ ## 0.0.3 - 2013-03-23
82
+ * `:type => :text` option in send
83
+
84
+ ## 0.0.2 - 2013-03-22
85
+ * remove unnecessary sleep
86
+
87
+ ## 0.0.1 - 2013-03-22
88
+ * release
data/README.md CHANGED
@@ -16,7 +16,6 @@ Installation
16
16
  Usage
17
17
  -----
18
18
  ```ruby
19
- require 'rubygems'
20
19
  require 'websocket-client-simple'
21
20
 
22
21
  ws = WebSocket::Client::Simple.connect 'ws://example.com:8888'
@@ -60,7 +59,7 @@ end
60
59
 
61
60
  Sample
62
61
  ------
63
- [websocket chat](https://github.com/shokai/websocket-client-simple/tree/master/sample)
62
+ [websocket chat](https://github.com/ruby-jp/websocket-client-simple/tree/master/sample)
64
63
 
65
64
 
66
65
  Test
@@ -11,7 +11,7 @@ module WebSocket
11
11
 
12
12
  class Client
13
13
  include EventEmitter
14
- attr_reader :url, :handshake
14
+ attr_reader :url, :handshake, :thread
15
15
 
16
16
  def connect(url, options={})
17
17
  return if @socket
@@ -23,13 +23,15 @@ module WebSocket
23
23
  ctx = OpenSSL::SSL::SSLContext.new
24
24
  ctx.ssl_version = options[:ssl_version] if options[:ssl_version]
25
25
  ctx.verify_mode = options[:verify_mode] if options[:verify_mode]
26
- cert_store = OpenSSL::X509::Store.new
26
+ cert_store = options[:cert_store] || OpenSSL::X509::Store.new
27
27
  cert_store.set_default_paths
28
28
  ctx.cert_store = cert_store
29
29
  @socket = ::OpenSSL::SSL::SSLSocket.new(@socket, ctx)
30
+ @socket.sync_close = true
30
31
  @socket.hostname = uri.host
31
32
  @socket.connect
32
33
  end
34
+ ::WebSocket.should_raise = true
33
35
  @handshake = ::WebSocket::Handshake::Client.new :url => url, :headers => options[:headers]
34
36
  @handshaked = false
35
37
  @pipe_broken = false
@@ -77,6 +79,9 @@ module WebSocket
77
79
  rescue Errno::EPIPE => e
78
80
  @pipe_broken = true
79
81
  emit :__close, e
82
+ rescue OpenSSL::SSL::SSLError => e
83
+ @pipe_broken = true
84
+ emit :__close, e
80
85
  end
81
86
  end
82
87
 
@@ -93,7 +98,11 @@ module WebSocket
93
98
  end
94
99
 
95
100
  def open?
96
- @handshake.finished? and !@closed
101
+ @handshake&.finished? and !@closed
102
+ end
103
+
104
+ def closed?
105
+ @closed
97
106
  end
98
107
 
99
108
  end
@@ -1,7 +1,7 @@
1
1
  module WebSocket
2
2
  module Client
3
3
  module Simple
4
- VERSION = "0.5.0"
4
+ VERSION = "0.8.0"
5
5
  end
6
6
  end
7
7
  end
data/sample/client.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
  $:.unshift File.expand_path '../lib', File.dirname(__FILE__)
3
- require 'rubygems'
4
3
  require 'websocket-client-simple'
5
4
 
6
5
  puts "websocket-client-simple v#{WebSocket::Client::Simple::VERSION}"
@@ -16,7 +16,7 @@
16
16
  <ul id="chat"></ul>
17
17
  <div id="footer">
18
18
  <hr>
19
- <a href="https://github.com/shokai/websocket-client-simple">https://github.com/shokai/websocket-client-simple</a>
19
+ <a href="https://github.com/ruby-jp/websocket-client-simple">https://github.com/ruby-jp/websocket-client-simple</a>
20
20
  </div>
21
21
  </body>
22
22
  </html>
@@ -1,11 +1,11 @@
1
1
  require File.expand_path 'test_helper', File.dirname(__FILE__)
2
2
 
3
- class TestWebSocketClientSimple < MiniTest::Test
4
-
3
+ class TestWebSocketClientSimple < Minitest::Test
4
+
5
5
  def test_onopen
6
-
6
+
7
7
  EM::run{
8
-
8
+
9
9
  EchoServer.start
10
10
 
11
11
  res = nil
@@ -27,7 +27,7 @@ class TestWebSocketClientSimple < MiniTest::Test
27
27
  EM::stop_event_loop
28
28
  end
29
29
  }
30
-
30
+
31
31
  end
32
-
32
+
33
33
  end
@@ -1,6 +1,6 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- class TestWebSocketClientSimple < MiniTest::Test
3
+ class TestWebSocketClientSimple < Minitest::Test
4
4
 
5
5
  def test_echo
6
6
  msgs = ['foo','bar','baz']
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  if spec.respond_to?(:metadata)
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
18
  spec.metadata["source_code_uri"] = spec.homepage
19
- spec.metadata["changelog_uri"] = "https://github.com/ruby-jp/websocket-client-simple/blob/master/History.txt"
19
+ spec.metadata["changelog_uri"] = "https://github.com/ruby-jp/websocket-client-simple/blob/master/CHANGELOG.md"
20
20
  end
21
21
 
22
22
  spec.post_install_message = "The development of this gem has moved to #{spec.homepage}."
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: websocket-client-simple
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sho Hashimoto
8
8
  - Yusuke Nakamura
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-12-31 00:00:00.000000000 Z
12
+ date: 2023-08-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -119,8 +119,8 @@ extra_rdoc_files: []
119
119
  files:
120
120
  - ".github/workflows/test.yml"
121
121
  - ".gitignore"
122
+ - CHANGELOG.md
122
123
  - Gemfile
123
- - History.txt
124
124
  - LICENSE.txt
125
125
  - README.md
126
126
  - Rakefile
@@ -142,7 +142,7 @@ licenses:
142
142
  metadata:
143
143
  homepage_uri: https://github.com/ruby-jp/websocket-client-simple
144
144
  source_code_uri: https://github.com/ruby-jp/websocket-client-simple
145
- changelog_uri: https://github.com/ruby-jp/websocket-client-simple/blob/master/History.txt
145
+ changelog_uri: https://github.com/ruby-jp/websocket-client-simple/blob/master/CHANGELOG.md
146
146
  post_install_message: The development of this gem has moved to https://github.com/ruby-jp/websocket-client-simple.
147
147
  rdoc_options: []
148
148
  require_paths:
@@ -158,8 +158,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  requirements: []
161
- rubygems_version: 3.1.6
162
- signing_key:
161
+ rubygems_version: 3.3.7
162
+ signing_key:
163
163
  specification_version: 4
164
164
  summary: Simple WebSocket Client for Ruby
165
165
  test_files:
data/History.txt DELETED
@@ -1,93 +0,0 @@
1
- === Not yet released
2
-
3
- === 0.5.0 2021-12-31
4
-
5
- * Change TLS context defaults to system's default. The previous defaults were ssl_version=SSLv23 and verify_mode=VERIFY_NONE, which are insecure nowadays. #5
6
- * thank you for contributing @eagletmt
7
- * Made the necessary changes to use SNI. #6
8
- * thank you for contributing @fuyuton
9
-
10
- === 0.4.0 2021-12-30
11
-
12
- * Drop support of ruby 2.5 or older versions as explicit.
13
-
14
- === 0.3.1 2021-12-30
15
-
16
- * The development of this repository has moved to https://github.com/ruby-jp/websocket-client-simple
17
-
18
- === 0.3.0 2016-02-20
19
-
20
- * "connect" method runs a given block before connecting WebSocket #12
21
- * thank you for suggestion @codekitchen
22
-
23
- === 0.2.5 2016-02-18
24
-
25
- * bugfixed sending when broken pipe #15
26
- * add :verify_mode option for SSL Context #14
27
- * thank you for contributing @michaelvilensky
28
-
29
- === 0.2.4 2015-11-12
30
-
31
- * support handshake headers #11
32
- * thank you for contributing @mathieugagne
33
-
34
- === 0.2.3 2015-10-26
35
-
36
- * kill thread at end of method
37
- * thank you for contributing @hansy
38
-
39
- === 0.2.2 2014-11-18
40
-
41
- * add :ssl_version option to specify version of SSL/TLS
42
- * thank you for contributing @tonybyrne
43
-
44
- === 0.2.1 2014-10-19
45
-
46
- * bugfix socket reading
47
-
48
- === 0.2.0 2014-06-07
49
-
50
- * SSL support with wss:// and https:// scheme
51
- * thank you for contributing @mallowlabs
52
-
53
- === 0.1.0 2014-05-08
54
-
55
- * add accessor Client#handshake #5
56
- * bugfix socket reading
57
-
58
- === 0.0.9 2014-04-03
59
-
60
- * emit "error" in receive thread
61
- * rescue only Errno::EPIPE, not all Errors
62
-
63
- === 0.0.8 2014-01-29
64
-
65
- * bugfix Client#close #4
66
-
67
- === 0.0.7 2014-01-29
68
-
69
- * send CLOSE frame in Client#close #4
70
-
71
- === 0.0.6 2014-01-17
72
-
73
- * add function Client#open?
74
-
75
- === 0.0.5 2013-03-23
76
-
77
- * kill read thread on close
78
-
79
- === 0.0.4 2013-03-23
80
-
81
- * fix sample and README
82
-
83
- === 0.0.3 2013-03-23
84
-
85
- * :type => :text option in send
86
-
87
- === 0.0.2 2013-03-22
88
-
89
- * remove unnecessary sleep
90
-
91
- === 0.0.1 2013-03-22
92
-
93
- * release