我有一点Express-Server,想要启动一些socket.io连接
这是我在服务器端的内容:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
app.all('*', function(req, res, next) {
res.header("Content-Type", "text/plain");
res.header("Access-Control-Allow-Origin", "*");
next();
});
app.get('/run', function(req, res, next){
io.on('connection', function (socket) {
socket.on('client_data', function (data) {
console.log('Message: '+data.message);
});
});
});
server.listen(8002, function() {
console.log('Listening on port %d', server.address().port);
});
以下是我在客户端的内容:
<script src="http://host:8002/socket.io/socket.io.js"></script>
<script>
var socket = io.connect("http://host:8002");
socket.emit('client_data', {'message': 'hello there!'});
</script>
现在,当我进入我的浏览器并输入http://localhost:8002/run时,它会跳转到我的“app.get('/ run'..)” - 部分在我服务器上的app.js ...但是不幸的是它不会执行io.on('connection'..){} - 部分,因此我不会在我的控制台中从客户端发送输出。关于这个问题的一些想法或解决方案?
编辑:好的,它必须与事实有关,我的io.on('connection')正在运行app.get('/ run') - Part。因为如果我把我的io.on('连接') - 部分放在server.listen() - Part ...它的工作原理。有人知道为什么它会在里面工作吗?