protocol-websocket 0.10.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - checksums.yaml.gz.sig +0 -0
 - data/lib/protocol/websocket/connection.rb +30 -22
 - data/lib/protocol/websocket/version.rb +1 -1
 - data.tar.gz.sig +0 -0
 - metadata +4 -6
 - metadata.gz.sig +0 -0
 - data/lib/.DS_Store +0 -0
 - data/lib/protocol/.DS_Store +0 -0
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 17a6b7e17274fe574b07bc2ad242cbe383671f7f05c84fd784ec474fbde5e28a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: f1098660970a0cf6069d5037dd736b52b18b7da51727c9968a96970ecd1015b0
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 1720e16bd8d32258b7583d9cde912229d64af57428ad3bb8644832c5b6f4e5c1588a798c9368a9638c5801f320e9b8489094d40ca5ffe45634b6d582d3f12170
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 17ac4461055d2de24188f365a85e5fb80c907ab041fc62bdc2f376e24bec1178f950ef8ff4388d39c6c144e056e63d8fc8e28ab53dcd537a4f92af73c02a5dd2
         
     | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | 
         Binary file 
     | 
| 
         @@ -55,12 +55,32 @@ module Protocol 
     | 
|
| 
       55 
55 
     | 
    
         
             
            				@framer.flush
         
     | 
| 
       56 
56 
     | 
    
         
             
            			end
         
     | 
| 
       57 
57 
     | 
    
         | 
| 
      
 58 
     | 
    
         
            +
            			def open!
         
     | 
| 
      
 59 
     | 
    
         
            +
            				@state = :open
         
     | 
| 
      
 60 
     | 
    
         
            +
            				
         
     | 
| 
      
 61 
     | 
    
         
            +
            				return self
         
     | 
| 
      
 62 
     | 
    
         
            +
            			end
         
     | 
| 
      
 63 
     | 
    
         
            +
            			
         
     | 
| 
      
 64 
     | 
    
         
            +
            			def close!(...)
         
     | 
| 
      
 65 
     | 
    
         
            +
            				@state = :closed
         
     | 
| 
      
 66 
     | 
    
         
            +
            				
         
     | 
| 
      
 67 
     | 
    
         
            +
            				return self
         
     | 
| 
      
 68 
     | 
    
         
            +
            			end
         
     | 
| 
      
 69 
     | 
    
         
            +
            			
         
     | 
| 
       58 
70 
     | 
    
         
             
            			def closed?
         
     | 
| 
       59 
71 
     | 
    
         
             
            				@state == :closed
         
     | 
| 
       60 
72 
     | 
    
         
             
            			end
         
     | 
| 
       61 
73 
     | 
    
         | 
| 
       62 
     | 
    
         
            -
            			def close( 
     | 
| 
       63 
     | 
    
         
            -
            				 
     | 
| 
      
 74 
     | 
    
         
            +
            			def close(...)
         
     | 
| 
      
 75 
     | 
    
         
            +
            				unless @state == :closed
         
     | 
| 
      
 76 
     | 
    
         
            +
            					close!
         
     | 
| 
      
 77 
     | 
    
         
            +
            					
         
     | 
| 
      
 78 
     | 
    
         
            +
            					begin
         
     | 
| 
      
 79 
     | 
    
         
            +
            						send_close(...)
         
     | 
| 
      
 80 
     | 
    
         
            +
            					rescue
         
     | 
| 
      
 81 
     | 
    
         
            +
            						# Ignore.
         
     | 
| 
      
 82 
     | 
    
         
            +
            					end
         
     | 
| 
      
 83 
     | 
    
         
            +
            				end
         
     | 
| 
       64 
84 
     | 
    
         | 
| 
       65 
85 
     | 
    
         
             
            				@framer.close
         
     | 
| 
       66 
86 
     | 
    
         
             
            			end
         
     | 
| 
         @@ -80,11 +100,11 @@ module Protocol 
     | 
|
| 
       80 
100 
     | 
    
         | 
| 
       81 
101 
     | 
    
         
             
            				return frame
         
     | 
| 
       82 
102 
     | 
    
         
             
            			rescue ProtocolError => error
         
     | 
| 
       83 
     | 
    
         
            -
            				 
     | 
| 
      
 103 
     | 
    
         
            +
            				close(error.code, error.message)
         
     | 
| 
       84 
104 
     | 
    
         | 
| 
       85 
105 
     | 
    
         
             
            				raise
         
     | 
| 
       86 
106 
     | 
    
         
             
            			rescue
         
     | 
| 
       87 
     | 
    
         
            -
            				 
     | 
| 
      
 107 
     | 
    
         
            +
            				close(Error::PROTOCOL_ERROR, $!.message)
         
     | 
| 
       88 
108 
     | 
    
         | 
| 
       89 
109 
     | 
    
         
             
            				raise
         
     | 
| 
       90 
110 
     | 
    
         
             
            			end
         
     | 
| 
         @@ -120,11 +140,13 @@ module Protocol 
     | 
|
| 
       120 
140 
     | 
    
         
             
            			end
         
     | 
| 
       121 
141 
     | 
    
         | 
| 
       122 
142 
     | 
    
         
             
            			def receive_close(frame)
         
     | 
| 
       123 
     | 
    
         
            -
            				@state = :closed
         
     | 
| 
       124 
     | 
    
         
            -
            				
         
     | 
| 
       125 
143 
     | 
    
         
             
            				code, reason = frame.unpack
         
     | 
| 
       126 
144 
     | 
    
         | 
| 
       127 
     | 
    
         
            -
            				 
     | 
| 
      
 145 
     | 
    
         
            +
            				# If we're already closed, then we don't need to send a close frame. Otherwise, according to the RFC, we should echo the close frame. However, it's possible it will fail to send if the connection is already closed.
         
     | 
| 
      
 146 
     | 
    
         
            +
            				unless @state == :closed
         
     | 
| 
      
 147 
     | 
    
         
            +
            					close!
         
     | 
| 
      
 148 
     | 
    
         
            +
            					send_close(code, reason)
         
     | 
| 
      
 149 
     | 
    
         
            +
            				end
         
     | 
| 
       128 
150 
     | 
    
         | 
| 
       129 
151 
     | 
    
         
             
            				if code and code != Error::NO_ERROR
         
     | 
| 
       130 
152 
     | 
    
         
             
            					raise ClosedError.new reason, code
         
     | 
| 
         @@ -142,18 +164,6 @@ module Protocol 
     | 
|
| 
       142 
164 
     | 
    
         
             
            				end
         
     | 
| 
       143 
165 
     | 
    
         
             
            			end
         
     | 
| 
       144 
166 
     | 
    
         | 
| 
       145 
     | 
    
         
            -
            			def open!
         
     | 
| 
       146 
     | 
    
         
            -
            				@state = :open
         
     | 
| 
       147 
     | 
    
         
            -
            				
         
     | 
| 
       148 
     | 
    
         
            -
            				return self
         
     | 
| 
       149 
     | 
    
         
            -
            			end
         
     | 
| 
       150 
     | 
    
         
            -
            			
         
     | 
| 
       151 
     | 
    
         
            -
            			def close!
         
     | 
| 
       152 
     | 
    
         
            -
            				@state = :closed
         
     | 
| 
       153 
     | 
    
         
            -
            				
         
     | 
| 
       154 
     | 
    
         
            -
            				return self
         
     | 
| 
       155 
     | 
    
         
            -
            			end
         
     | 
| 
       156 
     | 
    
         
            -
            			
         
     | 
| 
       157 
167 
     | 
    
         
             
            			def receive_ping(frame)
         
     | 
| 
       158 
168 
     | 
    
         
             
            				if @state != :closed
         
     | 
| 
       159 
169 
     | 
    
         
             
            					write_frame(frame.reply(mask: @mask))
         
     | 
| 
         @@ -198,8 +208,6 @@ module Protocol 
     | 
|
| 
       198 
208 
     | 
    
         | 
| 
       199 
209 
     | 
    
         
             
            				self.write_frame(frame)
         
     | 
| 
       200 
210 
     | 
    
         
             
            				self.flush
         
     | 
| 
       201 
     | 
    
         
            -
            				
         
     | 
| 
       202 
     | 
    
         
            -
            				@state = :closed
         
     | 
| 
       203 
211 
     | 
    
         
             
            			end
         
     | 
| 
       204 
212 
     | 
    
         | 
| 
       205 
213 
     | 
    
         
             
            			# Write a message to the connection.
         
     | 
| 
         @@ -237,7 +245,7 @@ module Protocol 
     | 
|
| 
       237 
245 
     | 
    
         
             
            					end
         
     | 
| 
       238 
246 
     | 
    
         
             
            				end
         
     | 
| 
       239 
247 
     | 
    
         
             
            			rescue ProtocolError => error
         
     | 
| 
       240 
     | 
    
         
            -
            				 
     | 
| 
      
 248 
     | 
    
         
            +
            				close(error.code, error.message)
         
     | 
| 
       241 
249 
     | 
    
         | 
| 
       242 
250 
     | 
    
         
             
            				raise
         
     | 
| 
       243 
251 
     | 
    
         
             
            			end
         
     | 
    
        data.tar.gz.sig
    CHANGED
    
    | 
         Binary file 
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: protocol-websocket
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.11.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Samuel Williams
         
     | 
| 
         @@ -41,7 +41,7 @@ cert_chain: 
     | 
|
| 
       41 
41 
     | 
    
         
             
              Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
         
     | 
| 
       42 
42 
     | 
    
         
             
              voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
         
     | 
| 
       43 
43 
     | 
    
         
             
              -----END CERTIFICATE-----
         
     | 
| 
       44 
     | 
    
         
            -
            date: 2023- 
     | 
| 
      
 44 
     | 
    
         
            +
            date: 2023-06-01 00:00:00.000000000 Z
         
     | 
| 
       45 
45 
     | 
    
         
             
            dependencies:
         
     | 
| 
       46 
46 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       47 
47 
     | 
    
         
             
              name: protocol-http
         
     | 
| 
         @@ -119,8 +119,6 @@ executables: [] 
     | 
|
| 
       119 
119 
     | 
    
         
             
            extensions: []
         
     | 
| 
       120 
120 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       121 
121 
     | 
    
         
             
            files:
         
     | 
| 
       122 
     | 
    
         
            -
            - lib/.DS_Store
         
     | 
| 
       123 
     | 
    
         
            -
            - lib/protocol/.DS_Store
         
     | 
| 
       124 
122 
     | 
    
         
             
            - lib/protocol/websocket.rb
         
     | 
| 
       125 
123 
     | 
    
         
             
            - lib/protocol/websocket/binary_frame.rb
         
     | 
| 
       126 
124 
     | 
    
         
             
            - lib/protocol/websocket/close_frame.rb
         
     | 
| 
         @@ -156,14 +154,14 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       156 
154 
     | 
    
         
             
              requirements:
         
     | 
| 
       157 
155 
     | 
    
         
             
              - - ">="
         
     | 
| 
       158 
156 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       159 
     | 
    
         
            -
                  version: 2. 
     | 
| 
      
 157 
     | 
    
         
            +
                  version: 2.7.6
         
     | 
| 
       160 
158 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       161 
159 
     | 
    
         
             
              requirements:
         
     | 
| 
       162 
160 
     | 
    
         
             
              - - ">="
         
     | 
| 
       163 
161 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       164 
162 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       165 
163 
     | 
    
         
             
            requirements: []
         
     | 
| 
       166 
     | 
    
         
            -
            rubygems_version: 3.4. 
     | 
| 
      
 164 
     | 
    
         
            +
            rubygems_version: 3.4.7
         
     | 
| 
       167 
165 
     | 
    
         
             
            signing_key:
         
     | 
| 
       168 
166 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       169 
167 
     | 
    
         
             
            summary: A low level implementation of the WebSocket protocol.
         
     | 
    
        metadata.gz.sig
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/.DS_Store
    DELETED
    
    | 
         Binary file 
     | 
    
        data/lib/protocol/.DS_Store
    DELETED
    
    | 
         Binary file 
     |