Javascript 如何使用express framework在节点上运行Socket.io?

Javascript 如何使用express framework在节点上运行Socket.io?,javascript,node.js,sockets,websocket,socket.io,Javascript,Node.js,Sockets,Websocket,Socket.io,我正在尝试使用express framework和node.js运行websocket 这就是我所做的 var env = require('./config'); var app = require('express').createServer(); var server = app.listen(env.socket.port, env.socket.host, function () { var host = server.address().address; var port

我正在尝试使用express framework和node.js运行websocket

这就是我所做的

var env = require('./config');
var app = require('express').createServer();

var server = app.listen(env.socket.port, env.socket.host, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});


var io = require('socket.io')(app);

app.get('/', function (req, res) {
    res.send('Landed!');
});

io.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });

  socket.on('my other event', function (data) {
    console.log(data);
  });

});
但它不起作用!这是我得到的错误

C:\Program Files\nodejs>node socket.js
C:\Program Files\nodejs\socket.js:2
var app = require('express').createServer();
                             ^
TypeError: undefined is not a function
    at Object.<anonymous> (C:\Program Files\nodejs\socket.js:2:30)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3
C:\Program Files\nodejs>node socket.js
C:\ProgramFiles\nodejs\socket.js:2
var app=require('express')。createServer();
^
TypeError:undefined不是函数
反对。(C:\ProgramFiles\nodejs\socket.js:2:30)
在模块处编译(Module.js:460:26)
在Object.Module.\u extensions..js(Module.js:478:10)
在Module.load(Module.js:355:32)
在Function.Module.\u加载(Module.js:310:12)
位于Function.Module.runMain(Module.js:501:10)
启动时(node.js:129:16)
在node.js:814:3
我做错了什么?

require('express')。createServer()适用于非常旧的express版本(例如2.x)。您应该使用Express 3.x/4.x:

var env = require('./config');

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(env.socket.port, env.socket.host, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});

app.get('/', function (req, res) {
    res.send('Landed!');
});

io.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });

  socket.on('my other event', function (data) {
    console.log(data);
  });

});