PageRenderTime 39ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/api/services/socket.js

https://github.com/jojo1311/youtube-remote-js
JavaScript | 51 lines | 40 code | 5 blank | 6 comment | 0 complexity | b4566d4e5c25b881ba82db2d7198f81b MD5 | raw file
  1. var uuid = require('uuid');
  2. var clients = {
  3. };
  4. function init(socket, data){
  5. var id = uuid.v4();
  6. console.log('assign uuid %s to socket', id);
  7. clients[id] = {id: uuid, socket: socket};
  8. socket.uuid = id;
  9. socket.on('cmd', function(data){
  10. process.emit('socket.'+data.cmd, data);
  11. });
  12. socket.emit('response', {action: 'uuid', uuid: id});
  13. }
  14. function findPlayer(uuid) {
  15. return clients[uuid];
  16. }
  17. /*
  18. on client side:
  19. sendCmd('plus', {a:1, b:2}, function(resp) {
  20. console.log('1+2=', resp)
  21. });
  22. */
  23. process.on('socket.plus', function(data){
  24. console.log('socket.plus received', data);
  25. findPlayer(data.id).socket.emit('plus', data.data.a+data.data.b);
  26. });
  27. module.exports = {
  28. onConnect: function(session, socket) {
  29. console.log('onConnect');
  30. socket.on('message', function(){
  31. console.log('socket.onMessage');
  32. });
  33. socket.on('init', function(data){
  34. console.log('init', data);
  35. init(socket, data);
  36. });
  37. },
  38. onDisconnect: function(session, socket) {
  39. console.log('socket disconnected %s', socket.uuid);
  40. delete clients[socket.uuid];
  41. },
  42. findPlayer: findPlayer,
  43. listClients: function(){
  44. return Object.keys(clients);
  45. }
  46. };