Node.js и веб-сокеты - PullRequest
       6

Node.js и веб-сокеты

0 голосов
/ 04 августа 2010

У меня запущен сервер node.js, и я могу заставить его отображать «hello world» или ленту твиттера, когда я перехожу на URL.между экземпляром node.js и веб-сокетом, определенным на клиенте другой страницы.

У кого-нибудь есть идеи?

Большое спасибо.

Ответы [ 3 ]

1 голос
/ 06 августа 2010

Запускаете ли вы node.js за прокси-сервером?Некоторые прокси (например, ngnix) не поддерживают http 1.1, а для веб-сокетов необходим http 1.1.

0 голосов
/ 10 августа 2010

Ладно, у меня все получилось (я думаю)

Опять же, код на стороне клиента:

<script src="./Socket.IO/socket.io.js"></script>
<script>
    io.setPath('./Socket.IO/');

    var socket = new io.Socket('jayz.danstanhope.webfactional.com', { 'port': 80 });

    socket.on('connect', function () {
        alert('connect');
    });
    socket.on('message', function (msg) {
        alert('message' + msg);
    });
    socket.on('close', function () {
        alert('close');
    });
    socket.on('disconnect', function () {
        alert('disconnect');
    });
    socket.connect();

</script>

Код на стороне сервера:

var sys = require("sys")
  , fs = require("fs")
  , path = require("path")
  , http = require("http");
var io = require('/home/danstanhope/webapps/htdocs/Socket.IO-node');

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

server.listen(26970);
server = io.listen(server);
server.on('connection', function(client){
    sys.log('client connected');
});

Когда я обновляю страницу в Chrome, я вижу записи логов в Shell.

Вот что я вижу:

danstanhope@web146 htdocs]$ node server.js
9 Aug 19:19:37 - socket.io ready - accepting connections
9 Aug 19:19:40 - Initializing client with transport "websocket"
9 Aug 19:19:40 - Client 21789167495444417 connected
9 Aug 19:19:40 - client connected
9 Aug 19:19:40 - Client 21789167495444417 disconnected

Единственная проблема теперь заключается в том, чтобы запустить любое из этих предупреждений сокетов javascript.

Есть идеи?

Спасибо, Dan

0 голосов
/ 04 августа 2010

Смотрите здесь для библиотек WebSocket, совместимых с Node.JS. Node.JS не предоставляет встроенную поддержку WebSocket, вам нужно установить дополнительную библиотеку. Socket.io будет достаточно.

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