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.
- data/bin/wss +53 -0
- 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
|
+
|