Объяснение веб-сокетов и Javascript на стороне сервера (особенно сосредоточено на node.js) - PullRequest
3 голосов
/ 22 августа 2010

Я хочу создать чат-комнату с использованием веб-сокетов HTML5, но я довольно растерялся. Из того, что я могу сказать, требуется следующее:

  1. Браузер, поддерживающий веб-сокеты (Chrome, Safari)
  2. Какой-то сценарий на стороне сервера
  3. Какой-то сценарий на стороне клиента

У меня # 1 вниз :), но # 2 серьезно меня сбивает с толку. Помимо любительской работы с PHP (как правило, в контексте Drupal), у меня практически нет опыта написания кода на стороне сервера. Я склонен много писать на Javascript и читал фантастические вещи о node.js. Поэтому я решил попробовать использовать его для работы с веб-сокетами.

Я установил node.js на свой компьютер Mac Leopard (он устанавливается на узел Home>), но я действительно не знаю, куда идти дальше. На сайте node.js приведен пример «Hello World», который я пробовал (я поместил код в файл example.js и сохранил его в корне папки «node»), но получаю только следующее ответ в Терминале:

Сервер работает на http://127.0.0.1:8124/

Я бы ЛЮБИЛ node.js и веб-сокеты для чайников. Спасибо за любую помощь, которая может быть оказана.

Ответы [ 3 ]

4 голосов
/ 22 августа 2010

Это может быть немного более продвинутым, но он предоставляет достойный слой WebSocket для node.js: http://github.com/LearnBoost/Socket.IO-node

Тем не менее, если вы не сделали много вещей на стороне сервера, возможно, было бы лучшечтобы получить представление о протоколе http, в том числе о том, как создается запрос и ответ, как добавляются заголовки и т. д. (за пределами узла).Как только вы поймете, как это сделать, node.js станет намного проще для понимания.

Этот учебник должен дать вам общий обзор: http://www.tutorialspoint.com/http/index.htm

Этот материал становится еще более важным, когдаработа с паутиной

2 голосов
/ 12 октября 2010

Это также просто в RingoJs http://ringojs.org, если вы хотите придерживаться JavaScript на стороне сервера. Это суть того, что вы пишете для прослушивания через веб-сокет.

  var websocket = require("ringo/webapp/websocket");

  exports.serverStarted = function(server) {
      var context = server.getDefaultContext();
      websocket.addWebSocket(context, "/websocket", function (socket) {
          // this function, being passed the socket, is called everytime
          // a new socket connection is made.

          // overwrite onMessage to intercept the messages         
          socket.onmessage = function(m) {
          };
      });
  };

  // send smth to the client
 fooSocket.send('your message')

Внутри socket.onmessage вы просто захватываете сообщение и работаете с ним. Возможно, вы будете хранить сокеты где-нибудь, чтобы иметь к ним доступ позже.

См:

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

На сайте node.js есть демонстрационный проект с живым чатом. http://chat.nodejs.org/

и исходный код здесь. http://github.com/ry/node_chat

Это не использует HTML5, но надеюсь, что это указывает вам в правильном направлении.

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