我如何在具有快速框架的节点上 运行 Socket.io?
How can I run Socket.io on node with express framework?
我正在尝试 运行 使用 express 框架的 websocket 和 node.js 上的 socket.io。
这是我所做的
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
我做错了什么?
require('express').createServer()
用于非常旧版本的 Express(例如 2.x)。您应该使用 this example 表示 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);
});
});
我正在尝试 运行 使用 express 框架的 websocket 和 node.js 上的 socket.io。
这是我所做的
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
我做错了什么?
require('express').createServer()
用于非常旧版本的 Express(例如 2.x)。您应该使用 this example 表示 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);
});
});