|
@@ -35,69 +35,71 @@ module.exports = Router =
|
|
|
app.get "/clients/:client_id", HttpController.getConnectedClient
|
|
app.get "/clients/:client_id", HttpController.getConnectedClient
|
|
|
|
|
|
|
|
app.post "/project/:project_id/message/:message", httpAuth, bodyParser.json(limit: "5mb"), HttpApiController.sendMessage
|
|
app.post "/project/:project_id/message/:message", httpAuth, bodyParser.json(limit: "5mb"), HttpApiController.sendMessage
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
session.on 'connection', (error, client, session) ->
|
|
session.on 'connection', (error, client, session) ->
|
|
|
if error?
|
|
if error?
|
|
|
logger.err err: error, "error when client connected"
|
|
logger.err err: error, "error when client connected"
|
|
|
client?.disconnect()
|
|
client?.disconnect()
|
|
|
return
|
|
return
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
metrics.inc('socket-io.connection')
|
|
metrics.inc('socket-io.connection')
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
logger.log session: session, client_id: client.id, "client connected"
|
|
logger.log session: session, client_id: client.id, "client connected"
|
|
|
-
|
|
|
|
|
- if !session or !session.user?
|
|
|
|
|
- user = {_id: "anonymous-user"}
|
|
|
|
|
- else
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if session?.passport?.user?
|
|
|
|
|
+ user = session.passport.user
|
|
|
|
|
+ else if session?.user?
|
|
|
user = session.user
|
|
user = session.user
|
|
|
-
|
|
|
|
|
|
|
+ else
|
|
|
|
|
+ user = {_id: "anonymous-user"}
|
|
|
|
|
+
|
|
|
client.on "joinProject", (data = {}, callback) ->
|
|
client.on "joinProject", (data = {}, callback) ->
|
|
|
WebsocketController.joinProject client, user, data.project_id, (err, args...) ->
|
|
WebsocketController.joinProject client, user, data.project_id, (err, args...) ->
|
|
|
if err?
|
|
if err?
|
|
|
Router._handleError callback, err, client, "joinProject", {project_id: data.project_id, user_id: user?.id}
|
|
Router._handleError callback, err, client, "joinProject", {project_id: data.project_id, user_id: user?.id}
|
|
|
else
|
|
else
|
|
|
callback(null, args...)
|
|
callback(null, args...)
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
client.on "disconnect", () ->
|
|
client.on "disconnect", () ->
|
|
|
metrics.inc('socket-io.disconnect')
|
|
metrics.inc('socket-io.disconnect')
|
|
|
WebsocketController.leaveProject io, client, (err) ->
|
|
WebsocketController.leaveProject io, client, (err) ->
|
|
|
if err?
|
|
if err?
|
|
|
Router._handleError null, err, client, "leaveProject"
|
|
Router._handleError null, err, client, "leaveProject"
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
client.on "joinDoc", (doc_id, fromVersion, callback) ->
|
|
client.on "joinDoc", (doc_id, fromVersion, callback) ->
|
|
|
# fromVersion is optional
|
|
# fromVersion is optional
|
|
|
if typeof fromVersion == "function"
|
|
if typeof fromVersion == "function"
|
|
|
callback = fromVersion
|
|
callback = fromVersion
|
|
|
fromVersion = -1
|
|
fromVersion = -1
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
WebsocketController.joinDoc client, doc_id, fromVersion, (err, args...) ->
|
|
WebsocketController.joinDoc client, doc_id, fromVersion, (err, args...) ->
|
|
|
if err?
|
|
if err?
|
|
|
Router._handleError callback, err, client, "joinDoc", {doc_id, fromVersion}
|
|
Router._handleError callback, err, client, "joinDoc", {doc_id, fromVersion}
|
|
|
else
|
|
else
|
|
|
callback(null, args...)
|
|
callback(null, args...)
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
client.on "leaveDoc", (doc_id, callback) ->
|
|
client.on "leaveDoc", (doc_id, callback) ->
|
|
|
WebsocketController.leaveDoc client, doc_id, (err, args...) ->
|
|
WebsocketController.leaveDoc client, doc_id, (err, args...) ->
|
|
|
if err?
|
|
if err?
|
|
|
Router._handleError callback, err, client, "leaveDoc"
|
|
Router._handleError callback, err, client, "leaveDoc"
|
|
|
else
|
|
else
|
|
|
callback(null, args...)
|
|
callback(null, args...)
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
client.on "clientTracking.getConnectedUsers", (callback = (error, users) ->) ->
|
|
client.on "clientTracking.getConnectedUsers", (callback = (error, users) ->) ->
|
|
|
WebsocketController.getConnectedUsers client, (err, users) ->
|
|
WebsocketController.getConnectedUsers client, (err, users) ->
|
|
|
if err?
|
|
if err?
|
|
|
Router._handleError callback, err, client, "clientTracking.getConnectedUsers"
|
|
Router._handleError callback, err, client, "clientTracking.getConnectedUsers"
|
|
|
else
|
|
else
|
|
|
callback(null, users)
|
|
callback(null, users)
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
client.on "clientTracking.updatePosition", (cursorData, callback = (error) ->) ->
|
|
client.on "clientTracking.updatePosition", (cursorData, callback = (error) ->) ->
|
|
|
WebsocketController.updateClientPosition client, cursorData, (err) ->
|
|
WebsocketController.updateClientPosition client, cursorData, (err) ->
|
|
|
if err?
|
|
if err?
|
|
|
Router._handleError callback, err, client, "clientTracking.updatePosition"
|
|
Router._handleError callback, err, client, "clientTracking.updatePosition"
|
|
|
else
|
|
else
|
|
|
callback()
|
|
callback()
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
client.on "applyOtUpdate", (doc_id, update, callback = (error) ->) ->
|
|
client.on "applyOtUpdate", (doc_id, update, callback = (error) ->) ->
|
|
|
WebsocketController.applyOtUpdate client, doc_id, update, (err) ->
|
|
WebsocketController.applyOtUpdate client, doc_id, update, (err) ->
|
|
|
if err?
|
|
if err?
|