ExistRuby 2019.1.23 → 2022.1.31

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 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: []