Как реализовать раздел ввода текста вместе с кнопкой отправки в juggernaut? - PullRequest
0 голосов
/ 21 августа 2011

Я следовал точным указаниям на github и нахожусь на последнем шаге:

"Вот и все! Теперь перейдите к http://localhost:8080, чтобы увидеть Джаггернаута в действии."

Отображается диалоговое окно.Однако я не могу написать какой-либо текст.

Я бы хотел исправить страницу для практического использования чата, а не просто для тестирования.

1 Ответ

0 голосов
/ 21 августа 2011

Похоже, вам нужно следовать руководству по файлу «Джаггернаут» в этой строке под названием «Основное использование».

Основное использование

Все в Джаггернауте выполняется в контекстеканал.Клиенты JavaScript могут подписаться на канал, который ваш сервер может публиковать.Во-первых, нам нужно включить файл application.js Джаггернаута.По умолчанию Juggernaut размещается на порте 8080, поэтому мы можем просто ссылаться на файл там.

<script src="http://localhost:8080/application.js"

type = "text / javascript" charset = "utf-8">

Затем нам нужно создать экземпляр объекта Juggernaut и подписаться на канал.Как вы можете видеть, подписка принимает два аргумента, имя канала и обратный вызов.

<script type="text/javascript" charset="utf-8">
  var jug = new Juggernaut;
  jug.subscribe("channel1", function(data){
    console.log("Got data: " + data);
  });
</script>

Вот и все на стороне клиента.Теперь, чтобы опубликовать на канале, мы напишем немного Ruby:

require "juggernaut"
Juggernaut.publish("channel1", "Some data")

Вы должны увидеть, что отправленные нами данные мгновенно появляются в открытом окне браузера.Помимо строк, мы можем даже передавать объекты, например:

Juggernaut.publish("channel1", {:some => "data"})

Метод публикации также принимает массив каналов, если вы хотите отправить сообщение нескольким каналам одновременно.

Juggernaut.publish(["channel1", "channel2"], ["foo", "bar"])

В этом и заключается суть двух методов - публикации и подписки.Не может быть проще, чем это!

Как только вы это сделаете, вы можете реализовать упомянутый выше код Ruby внутри контроллера, который принимает пользовательский ввод из формы, а затем вызывает что-то вроде Juggernaut.publish("channel1", @user_data), позволяяваши пользователи отправляют данные через сервер друг другу.`

...