ExistRuby 2019.1.23 → 2022.1.31

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
- SHA1:
3
- metadata.gz: fbc668932a6edab8aed5b49ccde3bd19df01de62
4
- data.tar.gz: b78fe070a12afbc02b2909c8a9aa997d07fb13da
2
+ SHA256:
3
+ metadata.gz: b9bef4f3ba1fe32c10e576a41a2a9ffc48274092a1e80f67b1cb444b694a65c7
4
+ data.tar.gz: 795bbe7d57adfd0474ecae3d2cc4a887f15deaca8f50c55e41581f690f0f414e
5
5
  SHA512:
6
- metadata.gz: c14632e8266eec00774ae6d1bf04355b5283dcb98378911878cec2864cd3126c26d8e0452071e98376b7d19a19900f9ab28da4741380fd681ceb84ff5b0608c1
7
- data.tar.gz: 79d33a10deeb037c96f26795a4e39b34fbd25b2880440f1f9936fc62d410d78e0ffe54c57112911485f065b5ec9746a08a0a0a663699ebbdb66c9f3d8fa6e5e2
6
+ metadata.gz: 3cf39729bdf16d60c4c58c3853e7f42ecc35fc90e2cfecfc71f63b9214627b8620f201212a9809430d4ea749534f7ff7299624f96c2eca621debe72218819d23
7
+ data.tar.gz: a31066d510ecc118e8b6dfd7cb45d8057e5fc76a1e3e9bec921fbdf4c404c832e41946d66d6d43eba22c47ae82c5f85b79619b7a7222bdfdabb8cdba8af8b5f4
@@ -14,7 +14,8 @@ class MulticastHandler < EventMachine::Connection
14
14
  end
15
15
 
16
16
  def receive_data(data)
17
- # puts data
17
+ #puts "received #{data}"
18
+ ExistRuby::processMessage(data) # 处理消息
18
19
  end
19
20
 
20
21
  def post_init
data/lib/ExistRuby.rb CHANGED
@@ -1,9 +1,29 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'ExistRuby/ExistMessage_pb'
3
+ #require 'ExistRuby/ExistMessage_pb'
4
4
  require 'ExistRuby/MulticastHandler'
5
+ require 'cbor'
5
6
 
6
7
  class ExistRuby
8
+ SERVICEPUBLISH=0 # 服务发布。
9
+
10
+ def self.setController(controller)
11
+ @@controller=controller # 记录
12
+ end
13
+
14
+ def self.processMessage(data) # 处理消息
15
+ messageObject=CBOR.decode(data) # 解析消息。
16
+ #puts "message object: #{messageObject}" # Debug
17
+
18
+ if messageObject['messageType']==0 # 服务发布消息。
19
+ servicePublishMessage=CBOR.decode(messageObject['servicePublishMessage'])
20
+ #puts "service publish message: #{servicePublishMessage}" # Debug.
21
+
22
+ @@controller.reportServiceDetected(servicePublishMessage['name'], servicePublishMessage['port'], servicePublishMessage['protocolType']) # 报告已经发现了服务。
23
+ else # 服务探测消息。
24
+ end
25
+ end
26
+
7
27
  def initialize
8
28
  host = '239.173.40.5' #组播组主机地址。
9
29
  port = 11500 #组播组端口。
@@ -22,19 +42,33 @@ class ExistRuby
22
42
  # lanServicePort: (int)
23
43
  # lanServiceProtocolType: (enum)
24
44
  def publishService(lanServiceName, lanServicePort, lanServiceProtocolType)
25
- existMessage=Com::Stupidbeauty::Exist::ExistMessage.new #消息体。
45
+ #existMessage=Com::Stupidbeauty::Exist::ExistMessage.new #消息体。
26
46
 
27
- existMessage.messageType= Com::Stupidbeauty::Exist::ExistMessage::MessageType::SERVICEPUBLISH #设置消息类型。
47
+ #existMessage.messageType= Com::Stupidbeauty::Exist::ExistMessage::MessageType::SERVICEPUBLISH #设置消息类型。
28
48
 
29
- existMessage.servicePublishMessage=Com::Stupidbeauty::Exist::ServicePublishMessage.new #创建服务发布消息体。
49
+ #existMessage.servicePublishMessage=Com::Stupidbeauty::Exist::ServicePublishMessage.new #创建服务发布消息体。
30
50
 
31
- existMessage.servicePublishMessage.name=lanServiceName #设置服务名字。
32
- existMessage.servicePublishMessage.port=lanServicePort #设置端口号。
33
- existMessage.servicePublishMessage.protocolType=lanServiceProtocolType #设置协议类型。
51
+ #existMessage.servicePublishMessage.name=lanServiceName #设置服务名字。
52
+ #existMessage.servicePublishMessage.port=lanServicePort #设置端口号。
53
+ #existMessage.servicePublishMessage.protocolType=lanServiceProtocolType #设置协议类型。
54
+
55
+ #packageString=Com::Stupidbeauty::Exist::ExistMessage.encode(existMessage) #序列化为字符串。
56
+
57
+ servicePublishMessage={} # 服务发布消息。
58
+ servicePublishMessage['name']=lanServiceName # 服务名字。
59
+ servicePublishMessage['port']=lanServicePort # 服务端口
60
+ servicePublishMessage['protocolType']=lanServiceProtocolType # 协议类型。
61
+
62
+ servicePublishMessageBytteArray=servicePublishMessage.to_cbor # 服务发布消息体。
34
63
 
35
- packageString=Com::Stupidbeauty::Exist::ExistMessage.encode(existMessage) #序列化为字符串。
64
+ existMessage={} # 我存在消息体。
65
+ existMessage['messageType']=SERVICEPUBLISH # 服务发布。
66
+
67
+ existMessage['servicePublishMessage']=servicePublishMessageBytteArray # 服务发布消息体。
68
+
69
+ replyByteArray = existMessage.to_cbor # # 打包成字节数组。
36
70
 
37
71
  #发送:
38
- @networkThread.castData(packageString) #发送数据。
72
+ @networkThread.castData(replyByteArray) #发送数据。
39
73
  end
40
74
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ExistRuby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2019.1.23
4
+ version: 2022.1.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hxcan Cai
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-23 00:00:00.000000000 Z
11
+ date: 2022-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: hx_cbor
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 2021.8.20
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 2021.8.20
47
61
  description: Exist ruby. Auto service discovery in the LAN.
48
62
  email: caihuosheng@gmail.com
49
63
  executables: []
@@ -57,7 +71,7 @@ homepage: http://rubygems.org/gems/ExistRuby
57
71
  licenses:
58
72
  - MIT
59
73
  metadata: {}
60
- post_install_message:
74
+ post_install_message:
61
75
  rdoc_options: []
62
76
  require_paths:
63
77
  - lib
@@ -72,9 +86,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
86
  - !ruby/object:Gem::Version
73
87
  version: '0'
74
88
  requirements: []
75
- rubyforge_project:
76
- rubygems_version: 2.5.2.3
77
- signing_key:
89
+ rubygems_version: 3.1.6
90
+ signing_key:
78
91
  specification_version: 4
79
92
  summary: Exist ruby.
80
93
  test_files: []