2 * Socket.io configuration
7 var config = require('./environment');
8 var User = require('../models').User;
10 // When the user disconnects.. perform this
11 function onDisconnect(socket) {
14 .findById(socket.userId)
15 .then(function(user) {
21 .then(function(user) {
22 console.log('socket: user offline', user.name);
25 .catch(function(err) {
30 console.log('socket: anyone users found');
34 .catch(function(err) {
41 // When the user connects.. perform this
42 function onConnect(socket) {
43 // When the client emits 'info', this listens and executes
46 .findById(socket.userId)
47 .then(function(user) {
53 .then(function(user) {
54 console.log('socket: user online', user.name);
57 .catch(function(err) {
62 console.log('socket: anyone users found');
66 .catch(function(err) {
72 socket.on('info', function(data) {
73 console.info('[%s] %s', socket.address, JSON.stringify(data, null, 2));
76 // Insert sockets below
77 require('../api/desk_account/desk_account.socket').register(socket);
78 require('../api/report/report.socket').register(socket);
79 require('../api/update/update.socket').register(socket);
80 require('../api/report_chat_session/report_chat_session.socket').register(socket);
81 require('../api/zendesk_field/zendesk_field.socket').register(socket);
82 require('../api/report_chat/report_chat.socket').register(socket);
83 require('../api/zendesk_configuration/zendesk_configuration.socket').register(socket);
84 require('../api/motionbar/motionbar.socket').register(socket);
85 require('../api/report_mail_session/report_mail_session.socket').register(socket);
86 require('../api/report_mail/report_mail.socket').register(socket);
87 require('../api/zendesk_account/zendesk_account.socket').register(socket);
88 require('../api/report_queue/report_queue.socket').register(socket);
89 require('../api/dashboard/dashboard.socket').register(socket);
90 require('../api/setting/setting.socket').register(socket);
91 require('../api/report_agent/report_agent.socket').register(socket);
92 require('../api/trigger/trigger.socket').register(socket);
93 require('../api/automation/automation.socket').register(socket);
94 require('../api/mail_template/mail_template.socket').register(socket);
95 require('../api/ami/ami.socket').register(socket);
96 require('../api/integration/integration.socket').register(socket);
97 require('../api/voice_musiconhold/voice_musiconhold.socket').register(socket);
98 require('../api/voice_voicemail/voice_voicemail.socket').register(socket);
99 require('../api/contact_manager/contact_manager.socket').register(socket);
100 require('../api/fax_business_automation/fax_business_automation.socket').register(socket);
101 require('../api/mail_business_automation/mail_business_automation.socket').register(socket);
102 require('../api/business_action/business_action.socket').register(socket);
103 require('../api/business_condition/business_condition.socket').register(socket);
104 require('../api/interval/interval.socket').register(socket);
105 require('../api/voice_extension/voice_extension.socket').register(socket);
106 require('../api/voice_context/voice_context.socket').register(socket);
107 require('../api/user_has_voice_queue/user_has_voice_queue.socket').register(socket);
108 require('../api/voice_queue/voice_queue.socket').register(socket);
109 require('../api/trunk/trunk.socket').register(socket);
110 require('../api/user_has_chat_queue/user_has_chat_queue.socket').register(socket);
111 require('../api/chat_application/chat_application.socket').register(socket);
112 require('../api/user_has_mail_queue/user_has_mail_queue.socket').register(socket);
113 require('../api/event/event.socket').register(socket);
114 require('../api/square_odbc/square_odbc.socket').register(socket);
115 require('../api/fax_application/fax_application.socket').register(socket);
116 require('../api/user_has_fax_queue/user_has_fax_queue.socket').register(socket);
117 require('../api/fax_queue/fax_queue.socket').register(socket);
118 require('../api/user_has_team/user_has_team.socket').register(socket);
119 require('../api/variable/variable.socket').register(socket);
120 require('../api/tag/tag.socket').register(socket);
121 require('../api/square_project/square_project.socket').register(socket);
122 require('../api/chat_queue/chat_queue.socket').register(socket);
123 require('../api/fax_message/fax_message.socket').register(socket);
124 require('../api/fax_room/fax_room.socket').register(socket);
125 require('../api/fax_account/fax_account.socket').register(socket);
126 require('../api/chat_enquiry/enquiry.socket').register(socket);
127 require('../api/chat_message/chat_message.socket').register(socket);
128 require('../api/chat_room/chat_room.socket').register(socket);
129 require('../api/chat_visitor/chat_visitor.socket').register(socket);
130 require('../api/chat_website/chat_website.socket').register(socket);
131 require('../api/contact/contact.socket').register(socket);
132 require('../api/mail_attachment/mail_attachment.socket').register(socket);
133 require('../api/mail_account/mail_account.socket').register(socket);
134 require('../api/mail_message/mail_message.socket').register(socket);
135 require('../api/mail_application/mail_application.socket').register(socket);
136 require('../api/mail_room/mail_room.socket').register(socket);
137 require('../api/mail_queue/mail_queue.socket').register(socket);
138 require('../api/mail_server_in/mail_server_in.socket').register(socket);
139 require('../api/module/module.socket').register(socket);
140 require('../api/team/team.socket.js').register(socket);
141 require('../api/upload/upload.socket').register(socket);
142 require('../api/user/user.socket').register(socket);
143 require('../api/agent/agent.socket').register(socket);
144 require('../api/user_has_chat_room/user_has_chat_room.socket').register(socket);
145 require('../api/xchatty/xchatty.socket').register(socket);
149 module.exports = function(socketio) {
150 // socket.io (v1.x.x) is powered by debug.
151 // In order to see all the debug output, set DEBUG (in server/config/local.env.js) to including the desired scope.
153 // ex: DEBUG: "http*,socket.io:socket"
155 // We can authenticate socket.io users and access their token through socket.handshake.decoded_token
157 // 1. You will need to send the token in `client/components/socket/socket.service.js`
159 // 2. Require authentication here:
160 socketio.use(require('socketio-jwt').authorize({
161 secret: config.session.secret,
165 socketio.on('connection', function(socket) {
166 socket.address = socket.handshake.address !== null ? socket.handshake
167 .address.address + ':' + socket.handshake.address.port : process.env
170 socket.connectedAt = new Date();
171 socket.userId = socket.handshake.query.userId;
172 socket.role = socket.handshake.query.role;
173 socket.name = socket.handshake.query.name;
174 socket.source = socket.handshake.query.source;
176 // Call onDisconnect.
177 socket.on('disconnect', function() {
178 onDisconnect(socket);
179 console.info('[%s] SOCKET DISCONNECTED', socket.handshake.address);
184 console.info('[%s] SOCKET CONNECTED', socket.handshake.address);