您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

90 行
2.0 KiB

  1. define([
  2. ], function(
  3. ) {
  4. return {
  5. init: function(callback) {
  6. var app = require('express')();
  7. var server = require('http').createServer(app);
  8. global.io = require('socket.io')(server);
  9. app.use(function(req, res, next) {
  10. if (req.url.indexOf('/server') != 0)
  11. req.url = '/client/' + req.url;
  12. else
  13. req.url.substr(7);
  14. next();
  15. });
  16. var lessMiddleware = require('less-middleware');
  17. app.use(lessMiddleware('../', {
  18. force: true,
  19. render: {
  20. strictMath: true
  21. }
  22. }));
  23. app.get('/', this.requests.root.bind(this));
  24. app.get(/^(.*)$/, this.requests.default.bind(this));
  25. io.on('connection', this.listeners.onConnection.bind(this));
  26. var port = process.env.PORT || 4000;
  27. server.listen(port, function() {
  28. var message = 'Server: Ready';
  29. console.log(message);
  30. callback();
  31. });
  32. },
  33. listeners: {
  34. onConnection: function(socket) {
  35. socket.on('handshake', this.listeners.onHandshake.bind(this, socket));
  36. socket.on('disconnect', this.listeners.onDisconnect.bind(this, socket));
  37. socket.on('request', this.listeners.onRequest.bind(this, socket));
  38. socket.emit('handshake');
  39. },
  40. onHandshake: function(socket) {
  41. cons.onHandshake(socket);
  42. },
  43. onDisconnect: function(socket) {
  44. cons.onDisconnect(socket);
  45. },
  46. onRequest: function(socket, msg, callback) {
  47. msg.callback = callback;
  48. if (!msg.data)
  49. msg.data = {};
  50. if (msg.cpn)
  51. cons.route(socket, msg);
  52. else {
  53. msg.socket = socket;
  54. global[msg.module][msg.method](msg);
  55. }
  56. }
  57. },
  58. requests: {
  59. root: function(req, res) {
  60. //var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
  61. //if (ip != '::1')
  62. // return;
  63. res.sendFile('index.html');
  64. },
  65. default: function(req, res, next) {
  66. var root = req.url.split('/')[1];
  67. var file = req.params[0];
  68. file = file.replace('/' + root + '/', '');
  69. res.sendFile(file, {
  70. 'root': '../' + root
  71. });
  72. }
  73. }
  74. };
  75. });