2013-05-28 6 views
0

Я пытаюсь заставить Socket.io работать. Мой код ниже. Я получаю «Добро пожаловать в Socket.io». когда я навещаюSocket.io только в одном направлении

http://localhost/index.html 

но это все, что я могу получить. app.js выглядит так, что он отправит сообщение, но я ничего не получаю в своей консоли Javascript и ничего на странице, кроме «Добро пожаловать в Socket.io». Я пытался посетить

http://localhost/chat 

и

http://localhost/news 

и это одни и те же результаты. Я хочу проверить двустороннюю связь с помощью Socket.io. Будет ли этот сценарий делать это для меня и является брандмауэром, который может блокировать сообщение возврата. Это пример для страницы Socket.ip V0.9.

// app.js 
var io = require('socket.io').listen(80); 

var chat = io 
    .of('/chat') 
    .on('connection', function (socket) { 
     socket.emit('a message', { 
      that: 'only', 
     '/chat': 'will get' 
    }); 
    chat.emit('a message', { 
    everyone: 'in' 
    , '/chat': 'will get' 
    }); 
}); 

var news = io 
    .of('/news') 
    .on('connection', function (socket) { 
    socket.emit('item', { news: 'item' }); 
}); 

index.html

//index.html 
<script> 
var chat = io.connect('http://localhost/chat') 
    , news = io.connect('http://localhost/news'); 

chat.on('connect', function() { 
    chat.emit('hi!'); 
}); 

news.on('news', function() { 
    news.emit('woot'); 
}); 
</script> 
+0

Я думаю, вы пытаетесь использовать socket.io, как http-сервер. Вы не можете передавать данные, такие как html-страницы. Вы можете отправлять данные, но вам нужно javascript/jquery для обработки отправленных данных, чтобы их можно было увидеть. Попробуйте поставить 'alert ('hi!');' In chat on connect в index.html – user568109

ответ

0
Oh. Interesting. It does not look like you have a server even running, just io. 

//app.js 
var app = express(); 
var http = require('http'); 
var server = http.createServer(app); 

app.use(express.static(__dirname + '/public')); 
/* place index.html in /public */ 
var port = process.env.PORT || 5050; 

var io = require('socket.io').listen(server, { 
    log : false 
}); 
io.sockets.on('connection', function(socket) { 
socket.on('hi', function(data) { 
console.log('yay'); 
socket.emit('hello'); 
}); 
}); 
server.listen(port); 

//for index.html do the same. 

chat.on('connect', function() { 
    chat.emit('hi'); 
}); 
chat.on('hello',function(){ 
console.log('yay got hello'); 
}): 

// я только начинал на StackOverflow. Не так хорошо объяснять. Я использую выражение здесь, потому что оно проще. Если это не сработает, сообщите мне, какую версию узла, express и socket.io вы используете. Кроме того, я еще не использовал пространства имен для socket.io, так что это может быть проблемой.

+0

Я добавил его, и это не помогло. Когда я иду на страницу «Просмотр страницы», все, что я получаю, это «Добро пожаловать в Socket.io». Существует не html или javascript, а просто приветствуется в Socket.io. Возможно, это проблема брандмауэра. Соединяет ли socket.io другой порт, отличный от 80? – user1532576

+0

Я изменил свой ответ. Я ', пытаясь понять, как использовать переполнение стека лучше всего. Надеюсь, это поможет. –

Смежные вопросы