Skip to content

Instantly share code, notes, and snippets.

@TheConnMan
Last active January 3, 2016 18:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TheConnMan/40b9c918a91b074adf51 to your computer and use it in GitHub Desktop.
Save TheConnMan/40b9c918a91b074adf51 to your computer and use it in GitHub Desktop.
...
io.on('connection', function(socket) {
socket.on('username', function(username) {
socket.username = username;
});
socket.on('message', function(text) {
rooms.send(io, socket, text, 'message');
});
socket.on('change', function(room) {
if (socket.room) {
rooms.leave(io, socket);
}
rooms.join(io, socket, room);
});
socket.on('leave', function() {
if (socket.room) {
rooms.leave(io, socket);
}
});
socket.on('disconnect', function() {
if (socket.username) {
rooms.leave(io, socket);
}
});
});
...
...
socket.on('send:message', function(message) {
$scope.messages.push(message);
});
...
$scope.sendMessage = function() {
if ($scope.chat.message.length !== 0) {
socket.emit('message', $scope.chat.message);
$scope.chat.message = '';
...
}
};
...
...
rooms.send = function(io, socket, message, type) {
io.to(socket.room).emit('send:message', {
text: message,
date: moment().format('HH:mm:ss'),
type: type,
user: socket.username
});
};
rooms.leave = function(io, socket) {
socket.leave(socket.room);
rooms.send(io, socket, socket.username + ' left', 'join');
console.log(socket.username + ' left ' + socket.room);
};
rooms.join = function(io, socket, room) {
socket.room = room;
socket.join(socket.room);
rooms.send(io, socket, socket.username + ' joined', 'join');
console.log(socket.username + ' joined ' + socket.room);
};
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment