| ... | ... |
@@ -16,8 +16,7 @@ this.App = |
| 16 | 16 |
App._dispatcher = new WebSocketRails('www.xmpp.dev:3000/websocket')
|
| 17 | 17 |
App._dispatcher.on_open = => |
| 18 | 18 |
@_setupBackboneComponents() |
| 19 |
- @_bindListeners() |
|
| 20 |
- callback?() |
|
| 19 |
+ @_bindListeners(callback) |
|
| 21 | 20 |
|
| 22 | 21 |
trigger: (options) -> |
| 23 | 22 |
_.defaults(options, {data: {} })
|
| ... | ... |
@@ -109,7 +108,15 @@ this.App = |
| 109 | 109 |
|
| 110 | 110 |
App.Views.tabbar = new Xmpp.Views.Tabbar.TabbarView() |
| 111 | 111 |
|
| 112 |
- _bindListeners: -> |
|
| 112 |
+ _bindListeners: (callback) -> |
|
| 113 |
+ App._dispatcher.bind('app.client.connected', (jid) ->
|
|
| 114 |
+ callback?(jid) |
|
| 115 |
+ ) |
|
| 116 |
+ |
|
| 117 |
+ App._dispatcher.bind('app.client.cannot_connect', (jid) ->
|
|
| 118 |
+ alert('cannot connect to ' + jid)
|
|
| 119 |
+ ) |
|
| 120 |
+ |
|
| 113 | 121 |
App._dispatcher.bind('app.roster.statusChanged', (result) ->
|
| 114 | 122 |
App.debug 'change contact state' |
| 115 | 123 |
App.Collections.contacts.updateStatus(result) |
| ... | ... |
@@ -38,11 +38,16 @@ class WsRosterController < WsController |
| 38 | 38 |
end |
| 39 | 39 |
|
| 40 | 40 |
clients.each do |client| |
| 41 |
- begin |
|
| 42 |
- client = Signin.try_login(client[:jid], client[:pass]) |
|
| 43 |
- connection_store[:clients] << client |
|
| 44 |
- rescue Signin::LoginError |
|
| 45 |
- send_message 'app.client.cannot_connect', true |
|
| 41 |
+ Thread.new do |
|
| 42 |
+ begin |
|
| 43 |
+ client = Signin.try_login(client[:jid], client[:pass]) |
|
| 44 |
+ connection_store[:clients] << client |
|
| 45 |
+ send_message 'app.client.connected', client.jid.strip.to_s |
|
| 46 |
+ #Rails.logger.debug '!!!!! finished for ' + client_id.to_s |
|
| 47 |
+ rescue Signin::LoginError |
|
| 48 |
+ #Rails.logger.debug '!!!!! finished FAILED for ' + client_id.to_s |
|
| 49 |
+ send_message 'app.client.cannot_connect', client.jid.strip.to_s |
|
| 50 |
+ end |
|
| 46 | 51 |
end |
| 47 | 52 |
end |
| 48 | 53 |
end |
| ... | ... |
@@ -1,4 +1,3 @@ |
| 1 |
-#require 'json/pure' |
|
| 2 | 1 |
require 'xmpp4r' |
| 3 | 2 |
require 'xmpp4r/roster' |
| 4 | 3 |
require 'cgi' |
| ... | ... |
@@ -12,8 +11,8 @@ module Signin |
| 12 | 12 |
begin |
| 13 | 13 |
connect(pass) |
| 14 | 14 |
@client |
| 15 |
- rescue |
|
| 16 |
- raise LoginError |
|
| 15 |
+ rescue Exception => e |
|
| 16 |
+ raise LoginError, e.message |
|
| 17 | 17 |
end |
| 18 | 18 |
end |
| 19 | 19 |
|