создание приложения hello world с помощью socke.io и Learning - PullRequest
0 голосов
/ 10 февраля 2011

Код моего клиента:

<script src="C:\cygwin\usr\local\lib\node\.npm\socket.io\0.6.10\package\support\socket.io-client\socket.io.js"></script> 
<script> 
 var socket = new io.Socket('http://localhost:8080/'); 
 socket.connect();
 socket.on('connect', function(){
    console.log("on connect");

 }) ;
 socket.on('message', function(){ 
    console.log("on message");

 }) ;
 socket.on('disconnect', function(){ 
    console.log("on disconn");
 }) ;
</script> 

Код моего сервера:

var http = require('http'),  
    io = require('socket.io'), // for npm, otherwise use require('./path/to/socket.io') 

server = http.createServer(function(req, res){ 
 // your normal server code 
 res.writeHead(200, {'Content-Type': 'text/html'}); 
 res.end('<h1>Hello world</h1>'); 
});
server.listen(8080);

// socket.io 
var socket = io.listen(server); 
socket.on('connection', function(client){ 
  // new client is here! 
  client.on('message', function(){ 
    console.log("on message");
  }) 
  client.on('disconnect', function(){
    console.log("on disconnect");
  }) 
}); 

Когда я запускаю на клиенте, напечатан Hello World, но в каком журнале консоли я записал, что событие и клиент, и сервер не отображаются одновременно.

Пожалуйста, предложите Почему?

Также, пожалуйста, предложите учебник или материал для обучения node и socket.io.

Спасибо

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Попробуйте

var socket = new io.Socket('localhost:8080'); 

вместо

var socket = new io.Socket('http://localhost:8080/');
0 голосов
/ 05 сентября 2011

Вероятно, это связано с тем же ограничением безопасности в исходном браузере - клиентская библиотека socket.io не приходит с сервера, к которому вы подключаетесь.

Я не знаю о достаточно древней версии 0.6.9, но более новые версии socket.io обслуживают клиента socket.io автоматически, поэтому вы должны использовать /socket/socket.io.js вместо file:// URL, который вы используете в настоящее время. Проверьте документацию для точного URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...