@BarneyGumble

Как реализовать работу Express-приложения и socket.io на разных портах?

Добрый день

Клиент:
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 хочет работать на порту приложения. Как мне сделать так, чтобы приложение и сокеты работали на разных портах?
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Abcdefgk
var io = require('socket.io')(3001); //любая цифра
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы