webrtc-rails 0.3.8 → 0.3.9

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
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