webrtc-rails 0.3.8 → 0.3.9

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: 972101558691af9ed9c8600270255c0c9b6fbef1
4
- data.tar.gz: e70644ff95095a82ed7491eb687cc23e7b6fffeb
3
+ metadata.gz: 8805d636cb43da43f9396d8c87d1ed5167539918
4
+ data.tar.gz: d652c0c1d9b11e0eac2d3454745d658701155536
5
5
  SHA512:
6
- metadata.gz: 34f78ad9fa1b92089d2a498a81b2e716785659b0e7b1422dfa523d0601b42d9eccee23deec30c822f61f2bb3b7873b29aff1a1d9904729eab7354c2791aa0803
7
- data.tar.gz: 74d979e58d32f016a8d30223ce7cb71b480fe31a07983f9e57e5cfe885b6204b283b8d4808ae9a9cd0b2e9d2442cbbfd9e34a34b17a7405f874c9730e352d424
6
+ metadata.gz: d6739cbebb3671b268e321ffde2aa03ddb55f622b1f762589d8a3a96397883a9dd0ea705853a026e4d092d96b2977bd6bce834d2ac6e6ec12239c4c9badf047a
7
+ data.tar.gz: 4000cee35761f98ee2ee7592450f554787202534e824714a775c3b1a919d5729112a0bc8a8a280e94d19e92787bfd81b6f58cfb79002048c3f9c582ef1ca9acf
@@ -17,6 +17,7 @@ class @WebRTC
17
17
  onWebRTCConnectFailed: (reason) ->
18
18
  onServerMessage: (message) ->
19
19
  onUserMessage: (sentUserIdentifier, event, message) ->
20
+ onSendUserMessageFailed: (sendUserIdentifier, event, message) ->
20
21
 
21
22
  constructor: (url, userToken, localOutput, remoteOutput) ->
22
23
  @localOutput = if localOutput? then (localOutput[0] || localOutput) else null
@@ -138,15 +139,17 @@ class @WebRTC
138
139
  @_webSocket.onmessage = (data) =>
139
140
  event = JSON.parse(data.data)
140
141
  eventType = event['type']
141
- if eventType == 'userMessage'
142
- @onUserMessage(event['remoteUserIdentifier'], event['event'], event['message'])
143
- return
144
142
 
145
- if eventType != 'myUserIdentifier' && eventType != 'call' && eventType != 'webSocketReconnected'
143
+ dontNeedRemoteUserCheckType = ['userMessage', 'userMessageFailed', 'myUserIdentifier', 'call', 'webSocketReconnected']
144
+ if dontNeedRemoteUserCheckType.indexOf(eventType) == -1
146
145
  if @remoteUserIdentifier != event['remoteUserIdentifier']
147
146
  return
148
147
 
149
148
  switch eventType
149
+ when 'userMessage'
150
+ @onUserMessage(event['remoteUserIdentifier'], event['event'], event['message'])
151
+ when 'userMessageFailed'
152
+ @onSendUserMessageFailed(event['remoteUserIdentifier'], event['event'], event['message'])
150
153
  when 'myUserIdentifier'
151
154
  @myUserIdentifier = event['myUserIdentifier']
152
155
  if @_webSocketConnected
@@ -43,65 +43,64 @@ module WebrtcRails
43
43
  my_user_identifier = nil
44
44
 
45
45
  websocket.onclose do
46
- if my_user_identifier.present?
47
- if @websockets[my_user_identifier].present?
48
- @websockets[my_user_identifier].delete(websocket)
49
- @daemon_delegate.onWebSocketDisconnected(my_user_identifier)
50
- end
51
- end
46
+ next if my_user_identifier.blank?
47
+ next if @websockets[my_user_identifier].blank?
48
+ @websockets[my_user_identifier].delete(websocket)
49
+ @daemon_delegate.onWebSocketDisconnected(my_user_identifier)
52
50
  end
53
51
 
54
52
  websocket.onmessage do |message|
55
53
  data = JSON.parse(message, {symbolize_names: true})
56
- if data[:event] != 'heartbeat'
57
- token = data[:token]
58
- if token.present?
59
- user = @user_class.send(@fetch_user_by_token_method, token.to_s)
60
- my_user_identifier = user ? user.send(@user_identifier).to_s : nil
61
- if my_user_identifier.present?
62
- case data[:event]
63
- when 'userMessage'
64
- user_identifier = data[:value][:userIdentifier]
65
- event = data[:value][:event]
66
- message = data[:value][:message]
67
- if @daemon_delegate.onWantSendUserMessage(my_user_identifier, user_identifier, event, message)
68
- message = {
69
- type: 'userMessage',
70
- remoteUserIdentifier: my_user_identifier,
71
- event: event,
72
- message: message
73
- }
74
- sendMessage(user_identifier, message)
75
- end
76
- when 'setMyToken'
77
- @websockets[my_user_identifier] ||= []
78
- @websockets[my_user_identifier].push(websocket)
79
- message = {
80
- type: 'myUserIdentifier',
81
- myUserIdentifier: my_user_identifier
82
- }
83
- @daemon_delegate.onWebSocketConnected(my_user_identifier)
84
- websocket.send JSON.generate(message)
85
- when 'sendMessage'
86
- user_identifier = data[:value][:userIdentifier]
87
- type = data[:value][:message][:type]
88
- allow_types = %w/call hangUp offer answer candidate callFailed userMessage webSocketReconnected/
89
- if @websockets.key?(user_identifier) && type.present? && allow_types.include?(type)
90
- if type != 'call' || @daemon_delegate.onWantCall(my_user_identifier, user_identifier)
91
- message = data[:value][:message]
92
- message[:remoteUserIdentifier] = my_user_identifier
93
- sendMessage(user_identifier, message)
94
- end
95
- else
96
- message = {
97
- type: 'callFailed',
98
- reason: 0,
99
- remoteUserIdentifier: user_identifier
100
- }
101
- websocket.send JSON.generate(message)
102
- end
103
- end
54
+ next if data[:event] == 'heartbeat'
55
+ token = data[:token]
56
+ next if token.blank?
57
+ user = @user_class.send(@fetch_user_by_token_method, token.to_s)
58
+ my_user_identifier = user ? user.send(@user_identifier).to_s : nil
59
+ next if my_user_identifier.blank?
60
+
61
+ case data[:event]
62
+ when 'userMessage'
63
+ user_identifier = data[:value][:userIdentifier]
64
+ event = data[:value][:event]
65
+ message = data[:value][:message]
66
+ if @daemon_delegate.onWantSendUserMessage(my_user_identifier, user_identifier, event, message)
67
+ message = {
68
+ type: 'userMessage',
69
+ remoteUserIdentifier: my_user_identifier,
70
+ event: event,
71
+ message: message
72
+ }
73
+ sendMessage(user_identifier, message) do
74
+ message[:type] = 'userMessageFailed'
75
+ sendMessage(my_user_identifier, message)
76
+ end
77
+ end
78
+ when 'setMyToken'
79
+ @websockets[my_user_identifier] ||= []
80
+ @websockets[my_user_identifier].push(websocket)
81
+ message = {
82
+ type: 'myUserIdentifier',
83
+ myUserIdentifier: my_user_identifier
84
+ }
85
+ @daemon_delegate.onWebSocketConnected(my_user_identifier)
86
+ websocket.send JSON.generate(message)
87
+ when 'sendMessage'
88
+ user_identifier = data[:value][:userIdentifier]
89
+ type = data[:value][:message][:type]
90
+ allow_types = %w/call hangUp offer answer candidate callFailed userMessage webSocketReconnected/
91
+ if @websockets.key?(user_identifier) && type.present? && allow_types.include?(type)
92
+ if type != 'call' || @daemon_delegate.onWantCall(my_user_identifier, user_identifier)
93
+ message = data[:value][:message]
94
+ message[:remoteUserIdentifier] = my_user_identifier
95
+ sendMessage(user_identifier, message)
104
96
  end
97
+ else
98
+ message = {
99
+ type: 'callFailed',
100
+ reason: 0,
101
+ remoteUserIdentifier: user_identifier
102
+ }
103
+ websocket.send JSON.generate(message)
105
104
  end
106
105
  end
107
106
  end
@@ -113,6 +112,7 @@ module WebrtcRails
113
112
 
114
113
  def sendMessage(user_identifier, message)
115
114
  unless @websockets.key?(user_identifier)
115
+ yield if block_given?
116
116
  return
117
117
  end
118
118
  for ws in @websockets[user_identifier]
@@ -1,3 +1,3 @@
1
1
  module WebrtcRails
2
- VERSION = "0.3.8"
2
+ VERSION = "0.3.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webrtc-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Koji Murata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-03 00:00:00.000000000 Z
11
+ date: 2015-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: em-websocket