如何在juggernaut中实现文本输入部分和发送按钮?

时间:2011-08-21 05:23:57

标签: ruby-on-rails dialog chatroom juggernaut faye

我已遵循github上的确切指南,我正在最后一步:

“就是这样!现在去http://localhost:8080看看Juggernaut的行动。”

显示一个对话框。但是,我无法写任何文字。

我希望能够修改页面以实现实际聊天,而不仅仅是测试。

1 个答案:

答案 0 :(得分:0)

看起来你需要在标题为“基本用法”的那一行上遵循Juggernaut自述文件指南。

  

基本用法

     

剑圣中的一切都是在一个频道的背景下完成的。   JavaScript客户端可以订阅服务器可以使用的频道   发布到。首先,我们需要包含Juggernaut的application.js   文件。默认情况下,Juggernaut托管在端口8080上 - 所以我们可以   链接到那里的文件。

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

type =“text / javascript”charset =“utf-8”&gt;

     

然后我们需要实例化Juggernaut对象并订阅   渠道。如您所见,subscribe有两个参数,即通道   名称和回调。

<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)之类的内容,允许用户通过服务器相互发送数据。 `