Как мне реализовать секцию ввода текста вместе с кнопкой отправки в juggernaut?

Я следовал точным рекомендациям по github и нахожусь на последнем этапе:

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

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

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

1 ответ

Решение

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

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

Все в Джаггернауте делается в контексте канала. Клиенты 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) позволяя вашим пользователям отправлять данные через сервер друг другу. `

Другие вопросы по тегам