2013-09-17 4 views
2

Прежде всего, я хотел бы извиниться за любые ошибки в моем вопросе, это мои первые ребята!Функции Node.js socket.io не отправляются между сервером и клиентом

Я пытаюсь проверить соединение между моим сервером и клиентом, используя следующий код.

Вот как это работает: сокет инициируется на определенном порту, клиент затем пытается подключиться к этому порту, соединение частично успешно означает, что «node server.js» запускает соединение, и когда я иду на свой браузер для «localhost: 8000» генерируется html-страница, однако, когда я нажимаю кнопку «Ничего не происходит».

index.html код

<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script src="/socket.io/socket.io.js"></script> 
    <script> 
    $(document).ready(function() { 
    var socket = io.connect("localhost:8000"); 
    $("#join").click(function() { 
    var name = $("#name").val(); 
    if (name != "") { 
     socket.emit("join", name); 
     } 
    }); 
    socket.on("update", function(msg) { 
     $("#msgs").append("<li>" + msg + "</li>"); 
    }); 
    }); 
    </script> 
</head> 
<body> 
    <input type="text" placeholder="Yor name" id="name"> 
    <input type="button" name="join" id="join" value="Join!"> 
    <ul id="msgs"> 
    </ul> 
</body> 

код server.js

var fs = require('fs'), 
    http = require('http'), 
sio = require('socket.io'); 

var server = http.createServer(function(req, res) { 
res.writeHead(200, { 'Content-type': 'text/html'}); 
res.end(fs.readFileSync(__dirname + '/index.html')); 
}); 
server.listen(8000, function() { 
console.log('server is running'); 
}); 
var socket = sio.listen(server); 

socket.on("connection", function (client) { 
    client.on("join", function(name) { 
    client.emit("update", name + "You have successfully sent your first message."); 

    }); 
}); 

ответ

1

, как вы назвали ваши переменные сделали это сбивает с толку. Единственная проблема в вашем коде, что этот код:

socket.on('connection', handler); 

Должен быть изменен на:

socket.sockets.on('connection', handler); 

В большинстве случаев, а также примеры на веб-сайте, то EventEmitter обычно будет называться io.sockets , В вашем случае вы делаете эквивалент io.on('connection', handler);, поэтому он работает неправильно.

+0

Я только что попробовал этот, все еще никакого результата. –

+0

Вы уверены, что соединение действительно установлено? Что показывает отладка вашего браузера? – hexacyanide

+0

В нем говорится: «Не удалось загрузить ресурс» http://0.0.31.64:8000/socket.io/1/?t=1379332632021 –

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