1. 首页
  2. JAVASCRIPT
  3. [nodejs][express] 配置express4.x 与 socket.io

[nodejs][express] 配置express4.x 与 socket.io

今天在我的代码中将socket.io 放到express中一起使用,找了半天,找到了以下代码,很简单,在app.ts中进行 socket.io初始化然后在bin/www中进行attach最后在rout...


今天在我的代码中将socket.io 放到express中一起使用,

找了半天,找到了以下代码,

很简单,

在app.ts中进行 socket.io初始化

然后在bin/www中进行attach

最后在routes中进行插入使用.

这样就可以在controller中进行websocket发送了.


app.js

var express      = require( "express"   );
var socket_io    = require( "socket.io" );
// Express
var app          = express();
// Socket.io
var io           = socket_io();
app.io           = io;
(...)
// socket.io events
io.on( "connection", function( socket )
{
    console.log( "A user connected" );
});
module.exports = app;
// Or a shorter version of previous lines:
//
//    var app = require( "express"   )();
//    var io  = app.io = require( "socket.io" )();
//    io.on( "connection", function( socket ) {
//        console.log( "A user connected" );
//    });
//    module.exports = app;

bin/www:

(...)
/**
 * Create HTTP server.
 */
var server = http.createServer( app );
/**
 * Socket.io
 */
var io     = app.io
io.attach( server );
(...)



/routes/router


import * as express from 'express';
import Control from '../controller/users/control';
module.exports = function (io) {
  //now you can use io.emit() in this file
  var router: express.Router = express.Router();
  /* GET home page. */
  
  router.get('/', Control.goHome);
  router.get('/battle', Control.goBattle);
  router.post('/dream', function(req,res,next){
    req.body.io = io;
    Control.dream(req,res,next);
  });
  return router;
}


哎哎
相关推荐