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