wss 0.0.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.
Files changed (2) hide show
  1. data/bin/wss +53 -0
  2. metadata +92 -0
data/bin/wss ADDED
@@ -0,0 +1,53 @@
1
+ require "web_socket"
2
+ require 'em-websocket'
3
+
4
+ def start_server port
5
+ puts "Starting websocket server on port #{port}"
6
+
7
+ EM.run {
8
+ EM::WebSocket.run(:host => "0.0.0.0", :port => port) do |ws|
9
+ ws.onopen { |handshake|
10
+ puts "WebSocket connection open"
11
+
12
+ # Access properties on the EM::WebSocket::Handshake object, e.g.
13
+ # path, query_string, origin, headers
14
+
15
+ # Publish message to the client
16
+ ws.send "Hello Client, you connected to #{handshake.path}"
17
+ }
18
+
19
+ ws.onclose { puts "Connection closed" }
20
+
21
+ ws.onmessage { |msg|
22
+ puts "Recieved message: #{msg}"
23
+ ws.send "Pong: #{msg}"
24
+ }
25
+ end
26
+ }
27
+ end
28
+
29
+ def start_client port
30
+ conn = "ws://0.0.0.0:#{port}/"
31
+ client = WebSocket.new(conn)
32
+ puts("Connected to #{conn}")
33
+ Thread.new() do
34
+ while data = client.receive()
35
+ printf("Received: %p\n", data)
36
+ end
37
+ exit()
38
+ end
39
+ $stdin.each_line() do |line|
40
+ data = line.chomp()
41
+ client.send(data)
42
+ printf("Sent: %p\n", data)
43
+ end
44
+ client.close()
45
+ end
46
+
47
+ port = ENV['PORT'] ? ENV['PORT'].to_i : 8080
48
+
49
+ if ARGV[0] == "-c"
50
+ start_client port
51
+ else
52
+ start_server port
53
+ end
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wss
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Aditya Bhargava
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2013-05-08 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: em-websocket
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: web-socket-ruby
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
46
+ type: :runtime
47
+ version_requirements: *id002
48
+ description: Simple websocket server / client
49
+ email: bluemangroupie@gmail.com
50
+ executables:
51
+ - wss
52
+ extensions: []
53
+
54
+ extra_rdoc_files: []
55
+
56
+ files:
57
+ - bin/wss
58
+ homepage: ""
59
+ licenses: []
60
+
61
+ post_install_message:
62
+ rdoc_options: []
63
+
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ hash: 3
81
+ segments:
82
+ - 0
83
+ version: "0"
84
+ requirements: []
85
+
86
+ rubyforge_project:
87
+ rubygems_version: 1.8.25
88
+ signing_key:
89
+ specification_version: 3
90
+ summary: Simple websocket server / client
91
+ test_files: []
92
+