问题标签 [private-pub]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
262 浏览

ruby-on-rails - 无法在 Rails 4 上使用 private_pub 更改服务器地址

我一直在我的本地机器上使用私人酒吧,它工作正常,但现在我正在私人 vps 上尝试我的 Rails 应用程序,情况就不同了。我一直在尝试将 private_pub.yml 中的服务器字符串更改为我的 vps 的 ip,但我意识到无论我做什么都没有任何改变。它始终为 localhost:9292 提供服务。

所以我在我的本地机器上尝试了同样的事情,我"http://192.168.1.11:9292/faye"在开发和生产环境中将服务器字符串更改为你可以在这里看到的(我在两个环境中都更改了服务器地址只是为了确保......):

当我跑步时,bundle exec rackup private_pub.ru -s thin -E production我总是得到:

那么为什么它不读取 private_pub.yml 文件中的服务器地址呢?private_pub 是否过于弃用?

任何答案,建议,提示将不胜感激:)

0 投票
1 回答
433 浏览

ruby-on-rails-4 - 在 Amazon Linux EC2 中运行 private_pub 和 faye

我正在关注这个 Rails 聊天教程并成功地在本地进行。但是我在将它部署到 Amazon EC2 Linux 时遇到了麻烦。加载 faye.js 时出错

GET http://localhost:9292/faye.js net::ERR_CONNECTION_REFUSED

我需要配置一些东西吗?顺便说一句,我已经为安全组中的入站和出站添加了端口 9292。

谢谢你。

0 投票
1 回答
435 浏览

ruby-on-rails - Rails 应用程序无法连接到 Vagrant 上的 private_pub

我有一个使用 private_pub 的 rails 应用程序。不知何故,我无法让我的应用程序连接到 private_pub。

有没有办法将 private_pub 绑定到 0.0.0.0?

运行 rails 服务器

启动 private_pub

Chrome 控制台日志

0 投票
0 回答
667 浏览

ruby-on-rails - 通过 AJAX 上传 rails 文件,涉及 refile 和 remotipart + private_pub

我有一个带有实时聊天功能的 Rails 应用程序(1v1)。我想通过 AJAX 实现文件上传功能,在提交文件上传表单时,文件名将显示在聊天中,而无需重新加载整个页面。

我正在尝试使用 remotipart gem 来通过 AJAX 提交 refile 文件上传表单。文件直接上传到 S3,所以那些根本不会打到我的应用程序(我不需要显示它们),我只是通过聊天将文件名/U​​RL 发送给其他用户。

由于 refile gem,当我选择文件时,这些上传就开始了。因此,当我提交(“发送文件”按钮)表单时,它只是将文件属性(message.message_attachment/id、url、大小等)和 message_id 保存到数据库中。

在此处输入图像描述在此处输入图像描述在此处输入图像描述

在图片上你可以看到我想要实现的。聊天输入文本(message.body)有一个单独的表单,文件上传有另一个表单(message.message_attachment)。到目前为止,聊天与 private_pub gem 完美配合。选择文件也正确发生(包括将文件上传到 S3 和 204 状态响应),但提交表单(通过单击“发送文件”将消息保存到数据库)仅适用于整页重新加载。

我尝试的解决方案:

  1. 如果我没有将 'authenticity_token: true' 放入表单助手中进行上传,那么我会收到无效的 authencity token 错误。
  2. 如果我正在使用与聊天正常工作的消息控制器,那么我会在表单中收到缺少模板错误。
  3. 如果我把respond_to js(有或没有渲染:'create.js.erb')放在那里,我会收到未知格式错误。

对于聊天消息,我使用相同的 create.js.erb,但由于 private_pub gem,我不必使用 respond_to js。我只需要订阅和发布到/使用conversation_path(@path)。

我觉得我非常接近解决方案,因为它适用于整页重新加载。我不知道private_pub解决方案(不需要respond_to js)和remotipart w/refile(需要respond_to js)之间的兼容性是否会导致问题。

消息模型:

创建.js.erb

消息/_show.html.erb

在实现文件上传之前用于聊天的消息控制器:

消息控制器可以正常工作,并重新加载整页以进行上传:

更新:

问题已解决:app.js 中的错字//=需要 jquery.remotipart...... - 由于 private_pub gem,不需要 response_to js - authencity_token: true 对于表单助手也没有必要,这要归功于 remotipart gem - remotipart 需要能够通过 AJAX 提交文件表单

0 投票
1 回答
27 浏览

ruby-on-rails - 如何将内联 ruby​​ 代码与客户端 RJS 混合?

我正在使用PrivatePub,我在这里遇到了一些奇怪的行为。在详细介绍之前,请注意我使用的是 Ruby1.9.3和 Rails 3.2.2

假设我有TestsController

并且tests/index.html.erb

并且tests/create.js.erb

简单直接。现在我的问题是,每当我运行create动作时,由于某种原因<% puts "*"*100 %>总是运行(即使我做了 if(false) 语句)。

我知道我可以只使用 ruby if​​,然后应该可以正常工作,例如:

但我仍然想做一些客户端验证(例如检查 div 是否存在,然后相应地渲染一些部分),例如:

但似乎<%= j render(@messages) %>会一直呈现。

我该如何解决这个问题并在里面使用客户端 if 语句和 ruby​​ 模板代码?目前看来里面的任何东西<%%>都会被触发,我不想要这种行为。

0 投票
1 回答
450 浏览

ruby-on-rails - 如何在 Rails 中使用 PrivatePub 和 Faye 查找当前订阅的数量

我正在使用一个名为PrivatePub的红宝石宝石,它使用Faye提供 PubSub 消息传递

PrivatePub gem 提供了几个基于视图的助手来订阅/向特定主题发送消息。我希望扩展 PrivatePub 以包含一个 API 调用,该调用将为我提供连接到 Faye 的每个当前订阅对象的 ID。有人可以解释如何实现这一点或帮助我找到另一种方法来计算 PrivatePub api 的所有当前订阅。

0 投票
0 回答
312 浏览

ruby-on-rails-4 - 无法在服务器连接被拒绝时配置私人 pub

我正在尝试在我的服务器上的 ip 上配置私人 pub,相同的配置之前在不同的服务器上工作,但在当前不工作。

private_pub.ru

当我跑步时,rackup private_pub.ru -s thin -E production我在下面

但是当我尝试卷曲或在浏览器中调用时,我得到

我还尝试使用指向faye服务器的相同IP的单独域并将其代理到localhost:9292如下

但这也没有用。你能告诉我如何解决这个问题吗?

0 投票
0 回答
52 浏览

ruby-on-rails - Ruby on Rails 聊天应用程序无法在 Openshift 上运行 - Private_pub

我正在开发一个聊天也是一个模块的应用程序。我正在使用private_pubgem 进行连接握手 - 除了 chat 之外,所有东西都在生产中正常工作。同时localhost,包括聊天在内的一切都很好。我的应用程序部署在openshift上。我的 private_pub 配置如下

没有出现 faye / private_pub 错误 - openshift 上出现的唯一错误是

很抱歉,出了点问题 (500)

0 投票
1 回答
32 浏览

ruby-on-rails-4 - 当用户 A 在 Rails 中使用 faye 添加新评论时,如何为用户 B 自定义布局?

我已经使用 faye 构建了一个讨论栏应用程序。它有效,但有一个问题。

预期结果: 如果用户 A 发表评论,那么在他的屏幕中,他的图像应该在右侧。当用户 B 在他的聊天窗口中实时看到消息时,用户 A 的图像应该出现在左侧。

获得的结果:

用户 A 的消息出现在用户 B 的聊天窗口中,但用户 A 的图像位于右侧。

Faye 在不考虑我写的if 条件的情况下向每个用户推送相同的消息。

这是我的代码:

创建.js.erb:

user_message 部分中的 if else 条件具有不同的用户图像定位:

index.html.erb

我在heroku上托管了这个应用程序,完整的源代码在github 上

0 投票
0 回答
193 浏览

ruby-on-rails - Rails gem 类覆盖实现加载顺序

我想替换我正在使用的 gem 中的特定 ruby​​ 文件。

我正在使用的 gem 是 private_pub:https ://github.com/ryanb/private_pub我要替换的文件是:https ://github.com/ryanb/private_pub/blob/master/lib/private_pub/faye_extension .rb

所以我决定做的是,在我的 rails 项目中,在 config/initializers 中添加一个名为 faye_extension.rb 的新文件,其中包含以下代码:

我在顶部包含“PrivatePub::FayeExtension”的原因是强制自动加载,以便 FayeExtension 类将覆盖 gem 的实现。然而,当我执行驱动这个逻辑的代码路径时,我添加的 puts 语句都没有显示在日志中。值得一提的是,我确实看到了“Overide loaded”,但我相信会发生这种情况,然后,不知何故,gem 的实现被使用了。这让我相信 gem 的 faye_extension.rb 正在使用而不是我的版本。

如何强制使用我的版本而不是 gem 的版本?