Така че имам тази много проста настройка на socket.io, която вероятно сте виждали вече хиляди пъти.
Моля, имайте предвид, че тук файловете се обслужват чрез apache.
сървър (app.js)
var io = require('socket.io').listen(8080);
io.sockets.on('connection', function(socket){
socket.emit('server ready', {msg: 'hi'}) ;
socket.on('random event', function(data) {
console.log('received');
})
});
иклиента
$(document).ready(function() {
var socket = io.connect('http://127.0.0.1:8080/projectname/server/');
socket.on('server ready', function(data){
console.log('server ready!');
});
socket.emit('random event', {hurr: 'durr'});
});
Въпреки това, единственият резултат, който получавам, е
debug - websocket writing 5:::{"name":"server ready","args":[{"msg":"hi"}]}
в конзолата на възела и нищо в конзолата на клиента. Което е грешно.
Опитах основния пример от уебсайта socket.io и той показва абсолютно същото поведение. Той регистрира излъчените данни в конзолата на възела, но изглежда нищо друго не се случва.
Редактиране: При допълнително проучване, посещението на сайта във Firefox създава различен изход в конзолата на възела:
info - handshake authorized 178702677759276313
debug - setting request GET /socket.io/1/xhr-polling/178702677759276313?t=1339080239192
debug - setting poll timeout
debug - client authorized for
debug - clearing poll timeout
debug - xhr-polling writing 1::
debug - set close timeout for client 178702677759276313
debug - xhr-polling received data packet �17�1::/stock/server/�66�5::/stock/server/:{"name":"random event","args":[{"hurr":"durr"}]}
debug - setting request GET /socket.io/1/xhr-polling/178702677759276313?t=1339080239263
debug - setting poll timeout
debug - clearing poll timeout
debug - xhr-polling writing 5:::{"name":"server ready","args":[{"msg":"hi"}]}
Изглежда, че данните, излъчени от клиента, действително са достигнали сървъра. Изглежда обаче, че не решава действителния проблем: редовете console.log и както клиентската, така и сървърната страна не се изпълняват. Този резултат е от Firefox 5.0.1, където изглежда се връща към xhr.
Благодаря много предварително!
http://127.0.0.1:8080/projectname/server/
, а неhttp://127.0.0.1:8080/
или простоio.connect()
? - person alessioalex   schedule 07.06.2012projectname/server
и просто да се свържете с127.0.0.1:8080
. Ако клиентът се свързва директно към вашето приложение за възел на порт 8080, местоположението, където е вашият app.js, няма значение.. то живее на8080
. Коя версия на Firefox сте използвали в този втори журнал? Socket.io се върна към xhr polling.. дори не изпълнява уеб сокети. - person Wes Johnson   schedule 07.06.2012