Javascript 如何使用express framework在节点上运行Socket.io?
我正在尝试使用express framework和node.js运行websocket 这就是我所做的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
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);
});
});