Добрый день
Клиент:
var socket = io('http://localhost:3000');
socket.emit("chat message", 665, 500, 500);
socket.on("chat message", function(movingEmail, movingX, movingY) {
console.log(movingEmail + ' ' + movingX + ' ' + movingY);
});
Сервер (Express 4):
var app = require('express')();
var express = require('express');
var exphbs = require('express-handlebars');
var path = require('path');
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.set('views', path.join(__dirname, 'views'));
app.engine('hbs', exphbs({defaultLayout:'layout'}));
app.set('view engine', 'hbs');
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', function(req, res) {
res.render('system', {layout: false});
});
io.on('connection', function(socket){
socket.on('chat message', function(msg){
console.log('message: ' + msg);
socket.emit('chat message', msg);
});
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
Всё работает отлично.
Как только я на клиенте меняю строчку на
var socket = io('http://localhost:3001');
И на сервере на
var io = require('socket.io')(3001);
То всё перестаёт работать и я в консоли браузера начинаю видеть ошибку:
socket.io-1.4.5.js:1 GET localhost:3000/socket.io/?EIO=3&transport=polling&... 404 (Not Found)
Т.е. socket.io хочет работать на порту приложения. Как мне сделать так, чтобы приложение и сокеты работали на разных портах?