我没有收到错误,但是当我在Linode中部署应用程序时,io.on('connection', function(socket){
console.log('a user connected', socket.client.id);
});
似乎不起作用。
但在开发过程中,它运行良好。
server.js (socket io)
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var port = 8002;
io.on('connection', function (socket) {
console.log('a user connected', socket.client.id); // triggering in the development
});
http.listen(port, function () {
console.log('Express server listening on port ' + port);
console.log('env = ' + app.get('env') +
'\n__dirname = ' + __dirname +
'\nprocess.cwd = ' + process.cwd());
});
客户端HTML (注意:我将localhost更改为我的网络应用程序ip)
<script src="http://localhost:8002/socket.io/socket.io.js"></script>
我的应用程序似乎正在使用socket.io polling-xhr.js
我对此很陌生。
答案 0 :(得分:1)
我不知道这是否能解决您的特定问题,但为了在应用程序使用的同一端口上设置socket.io,您可以这样配置:
const express = require('express');
const app = express();
const http = require('http');
const hostname = 'localhost';
const port = 80;
// the express app is registered with the server
const server = http.createServer(app);
// setup socket.io and register it with the server
const io = require('socket.io').listen(server);
// tell the application to listen on the port specified
server.listen(port, hostname, function (err) {
if (err) {
throw err;
}
console.log('server listening on: ', hostname, ':', port);
});
现在,socket.io在与应用程序相同的端口上运行。