mqtt-sn-ruby 0.1.6 → 0.1.7

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
2
  SHA1:
3
- metadata.gz: 1ec6573a2dc9ed720a687b3219498d0846a6d2c4
4
- data.tar.gz: 2e847e9b73f0066b6dca9b7cd9ca63316232a8f9
3
+ metadata.gz: fc76cd166972276f880d322760d35adc7720eaa1
4
+ data.tar.gz: 2b0f87f21f19caf3e896ab35127a8f88d89aa756
5
5
  SHA512:
6
- metadata.gz: afb381b554159602a31c03931b187aee6395a72e8e73c36f47501af7a1e6147e24ac0527e2cf242c758bab6f028766ba72f4cb36ea87d01fbd1fae2435ab294b
7
- data.tar.gz: c067c54a08074a8d11ee6c506c4b73d14e65443868fa07683f0fa6dbd6af946b36ee1035e92be643801e9388ff0a9fd940e62e15e5a849cbf853e12cde1e5f05
6
+ metadata.gz: ab598d395528d9cce9126daf3238562be93decda49a6bb2afc8929262a43132d055927c170fa5be9a650ae9d5262217e17f906ef370a7a6b53a5afcccef9f6bd
7
+ data.tar.gz: 9ac8e5e7bfb3b9c8c8dcc26df8c6432b176a986f77c022a1b7861eb5ddc1020f0bdc31b34972d15107aefd2edc2b4eae27c18c621c29f6eaa79d424a804dcaa2
@@ -3,9 +3,35 @@ now=0
3
3
 
4
4
  update_status = (data) ->
5
5
  console.log data.jes
6
- console.log data.loglines
6
+ console.log data.clients
7
7
  #console.log data.logpos
8
8
  now=data.now
9
+ html="<table><tr><th>uri</th><th>state</th><th>stamp</th><th>last_send</th><th>counter_send</th><th>last_recv</th><th>counter_recv</th></tr>"
10
+ for k,v of data.clients
11
+ html+="<tr>"
12
+ html+="<td>#{k}</td>"
13
+ html+="<td>#{v.state}</td>"
14
+ html+="<td>#{now-v.stamp}</td>"
15
+
16
+
17
+
18
+ if v.last_send
19
+ html+="<td>#{now-v.last_send}</td>"
20
+ else
21
+ html+="<td></td>"
22
+ html+="<td>#{v.counter_send}</td>"
23
+
24
+ if v.last_recv
25
+ html+="<td>#{now-v.last_recv}</td>"
26
+ else
27
+ html+="<td></td>"
28
+ html+="<td>#{v.counter_recv}</td>"
29
+
30
+ html+="</tr>"
31
+ html+="</table>"
32
+ #console.log html
33
+ $(".clients").html(html)
34
+
9
35
  html="<table><tr><th>gw_id</th><th>uri</th><th>source</th><th>stamp</th><th>last_use</th><th>last_ping</th><th>last_send</th><th>counter_send</th><th>last_recv</th><th>counter_recv</th></tr>"
10
36
  for k,v of data.gateways
11
37
  k=parseInt(k,10)
@@ -19,6 +19,8 @@
19
19
  %option{value: "0"} 0
20
20
  %option{value: "1"} 1
21
21
  %option{value: "2"} 2
22
+ Retain:
23
+ %input{type: :checkbox,name: "retain", value: "true"}
22
24
  %button{value: "Publish", onclick: "ajax(this); return(false);"}
23
25
  Publish
24
26
  %hr
data/http/json/action.rb CHANGED
@@ -4,14 +4,18 @@
4
4
 
5
5
  def json_action request,args,session,event
6
6
  #$sn.pub msg: "jees123", server_uri: "udp://20.20.20.21:1882"
7
- puts "agrs:#{args}"
8
7
  topic="top"
9
8
  msg=args['msg']||"test_message"
10
9
  topic=args['topic']||"XX"
11
10
  qos=(args['qos']||0).to_i
12
- puts "1"
13
- $sn.publish topic, msg, qos: qos
14
- puts "2"
11
+ if args['retain']=="true"
12
+ retain=true
13
+ else
14
+ retail=nil
15
+ end
16
+ pp args
17
+ pp retain
18
+ $sn.publish topic, msg, qos: qos, retain: retain
15
19
  data={jee: 123}
16
20
  return ["text/json",data]
17
21
  end
@@ -23,6 +23,7 @@ def json_gateways request,args,session,event
23
23
  now:Time.now.to_i,
24
24
  jes: [session,event],
25
25
  gateways: $sn.gateways,
26
+ clients: $sn.clients,
26
27
  state: $sn.state,
27
28
  active_gw_id: $sn.active_gw_id,
28
29
  options: $sn.options,
data/lib/mqtt-sn-http.rb CHANGED
@@ -28,7 +28,7 @@ def http_server options
28
28
  req=request[1]
29
29
  req="/#{http_app}.html" if req=="/" or req=="/index.htm" or req=="/index.html"
30
30
  req,argss=req.split "\?"
31
- puts "req: #{req}, agss:#{argss}"
31
+ #puts "req: #{req}, agss:#{argss}"
32
32
  args={}
33
33
  if argss
34
34
  argss.split("&").each do |a|
@@ -38,7 +38,7 @@ def http_server options
38
38
  end
39
39
  end
40
40
  end
41
- puts "req: #{req}, args:#{args}"
41
+ #puts "req: #{req}, args:#{args}"
42
42
  if req[/\.html$/] and File.file?(fn="#{$http_dir}haml#{req.gsub('.html','.haml')}")
43
43
  contents = File.read(fn)
44
44
  response=Haml::Engine.new(contents).render
@@ -68,7 +68,6 @@ def http_server options
68
68
  end
69
69
  end
70
70
  if type!="text/event-stream" and status=="200 OK"
71
- puts "json_#{act} request,args,0,0 '#{req},#{args}'"
72
71
  begin
73
72
  type,response=eval "json_#{act} req,args,0,0" #event handlers get called with zero session => init :)
74
73
  rescue => e
data/lib/mqtt-sn-ruby.rb CHANGED
@@ -256,7 +256,7 @@ class MqttSN
256
256
  key="#{client_ip}:#{client_port}"
257
257
  if not @clients[key]
258
258
  uri="udp://#{client_ip}:#{client_port}"
259
- @clients[key]={ip:client_ip, port:client_port, socket: UDPSocket.new, uri: uri, state: :active }
259
+ @clients[key]={ip:client_ip, port:client_port, socket: UDPSocket.new, uri: uri, state: :active, counter_send:0, last_send:0 , counter_recv:0, last_recv:0}
260
260
  c=@clients[key]
261
261
  puts "thread start for #{key}"
262
262
  @clients[key][:thread]=Thread.new(key) do |my_key|
@@ -268,6 +268,11 @@ class MqttSN
268
268
  _,port,_,_ = @clients[my_key][:socket].addr
269
269
  dest="#{@server}:#{port}"
270
270
  logger "sc %-24.24s <- %-24.24s | %s",@clients[my_key][:uri],@gateways[@active_gw_id][:uri],mm.to_json
271
+ @gateways[@active_gw_id][:last_recv]=Time.now.to_i
272
+ @gateways[@active_gw_id][:counter_recv]+=1
273
+ @clients[my_key][:last_send]=Time.now.to_i
274
+ @clients[my_key][:counter_send]+=1
275
+
271
276
  case mm[:type]
272
277
  when :disconnect
273
278
  @clients[my_key][:state]=:disconnected
@@ -289,6 +294,10 @@ class MqttSN
289
294
  sbytes=@clients[key][:socket].send(r, 0, @server, @port) # to rsmb -- ok as is
290
295
  _,port,_,_ = @clients[key][:socket].addr
291
296
  dest="#{@server}:#{port}"
297
+ @gateways[@active_gw_id][:last_send]=Time.now.to_i
298
+ @gateways[@active_gw_id][:counter_send]+=1
299
+ @clients[key][:last_recv]=Time.now.to_i
300
+ @clients[key][:counter_recv]+=1
292
301
  begin
293
302
  if @active_gw_id
294
303
  logger "cs %-24.24s -> %-24.24s | %s", @clients[key][:uri],@gateways[@active_gw_id][:uri],m.to_json
@@ -815,7 +824,8 @@ class MqttSN
815
824
  end
816
825
  qos=(flags>>5)&0x03
817
826
  qos=-1 if qos==3
818
- m={type: :publish, qos: qos, topic_id: topic_id, topic_type:topic_type, topic: topic, msg_id: msg_id, msg: msg,status: :ok}
827
+ m={type: :publish, qos: qos, topic_id: topic_id, topic_type:topic_type, topic: topic, msg_id: msg_id, msg: msg,flags: flags, status: :ok}
828
+ m[:retain]=true if flags & RETAIN_FLAG == RETAIN_FLAG
819
829
  when PUBREL_TYPE
820
830
  msg_id=(r[2].ord<<8)+r[3].ord
821
831
  m={type: :pub_rel, msg_id: msg_id, status: :ok}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mqtt-sn-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Siitonen