2013-09-28 5 views
1

Я новичок в HTML5 и node.js. Я пытаюсь создать очень основное клиент-серверное приложение. Вот код.Веб-приложение с использованием websockets и node.js

стороне сервера (Node.js):

var net = require('net'); 

var server = net.createServer(function(c) { 

    console.log('client connected'); 
    c.setEncoding('utf8'); 

    c.on('end', function() { 
     console.log('client disconnected'); 
    }); 

    c.on('data', function(data) { 
     console.log(data); 
     c.write("Got it"); 
    }); 

}); 

server.listen(9998); 

стороне клиента (WebSockets):

<!DOCTYPE html> 

<html> 
    <head> 
     <script> 

      try { 

       var ws = new WebSocket('ws://127.0.0.1:9998'); 

       ws.onopen = function() { 
        ws.send("Message to send"); 
        alert("Message is sent..."); 
       }; 

       ws.onmessage = function (evt) { 
        var message = evt.data; 
        alert("Message is received: " + message); 
       }; 

       ws.onclose = function() { 
        alert("Connection is closed..."); 
       }; 

      } catch (err) { 
       alert(err.message); 
      } 

     </script> 
    </head> 
    <body> 
    </body> 
</html> 

Насколько я понимаю, клиент должен подключиться к серверу, отправить «сообщение в отправьте », и сервер должен ответить« Получил ». Вместо того, что получает сервер, это HTTP-запрос GET для клиентской html-страницы, и ни один из обратных вызовов клиента не запускается. Что мне не хватает?

ответ

0

Вам не хватает самой точки WebSocket, его TCP, но не сырой TCP, чтобы установить соединение, клиент должен сначала отправить HTTP-запрос, затем серверы переключают протоколы в веб-узлы, но помните, что websocket не является сырым TCP, там являются пользовательскими заголовками в пакетах и ​​других.

Чтобы сэкономить время, попробуйте https://github.com/LearnBoost/Socket.IO/ или другие библиотеки веб-рассылки https://github.com/joyent/node/wiki/Modules.

+0

Благодарим за информацию. –

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