问题标签 [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.
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 是否过于弃用?
任何答案,建议,提示将不胜感激:)
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。
谢谢你。
ruby-on-rails - Rails 应用程序无法连接到 Vagrant 上的 private_pub
我有一个使用 private_pub 的 rails 应用程序。不知何故,我无法让我的应用程序连接到 private_pub。
有没有办法将 private_pub 绑定到 0.0.0.0?
运行 rails 服务器
启动 private_pub
Chrome 控制台日志
ruby-on-rails - 通过 AJAX 上传 rails 文件,涉及 refile 和 remotipart + private_pub
我有一个带有实时聊天功能的 Rails 应用程序(1v1)。我想通过 AJAX 实现文件上传功能,在提交文件上传表单时,文件名将显示在聊天中,而无需重新加载整个页面。
我正在尝试使用 remotipart gem 来通过 AJAX 提交 refile 文件上传表单。文件直接上传到 S3,所以那些根本不会打到我的应用程序(我不需要显示它们),我只是通过聊天将文件名/URL 发送给其他用户。
由于 refile gem,当我选择文件时,这些上传就开始了。因此,当我提交(“发送文件”按钮)表单时,它只是将文件属性(message.message_attachment/id、url、大小等)和 message_id 保存到数据库中。
在图片上你可以看到我想要实现的。聊天输入文本(message.body)有一个单独的表单,文件上传有另一个表单(message.message_attachment)。到目前为止,聊天与 private_pub gem 完美配合。选择文件也正确发生(包括将文件上传到 S3 和 204 状态响应),但提交表单(通过单击“发送文件”将消息保存到数据库)仅适用于整页重新加载。
我尝试的解决方案:
- 如果我没有将 'authenticity_token: true' 放入表单助手中进行上传,那么我会收到无效的 authencity token 错误。
- 如果我正在使用与聊天正常工作的消息控制器,那么我会在表单中收到缺少模板错误。
- 如果我把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 提交文件表单
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 模板代码?目前看来里面的任何东西<%%>
都会被触发,我不想要这种行为。
ruby-on-rails - 如何在 Rails 中使用 PrivatePub 和 Faye 查找当前订阅的数量
我正在使用一个名为PrivatePub的红宝石宝石,它使用Faye提供 PubSub 消息传递
PrivatePub gem 提供了几个基于视图的助手来订阅/向特定主题发送消息。我希望扩展 PrivatePub 以包含一个 API 调用,该调用将为我提供连接到 Faye 的每个当前订阅对象的 ID。有人可以解释如何实现这一点或帮助我找到另一种方法来计算 PrivatePub api 的所有当前订阅。
ruby-on-rails-4 - 无法在服务器连接被拒绝时配置私人 pub
我正在尝试在我的服务器上的 ip 上配置私人 pub,相同的配置之前在不同的服务器上工作,但在当前不工作。
private_pub.ru
当我跑步时,rackup private_pub.ru -s thin -E production
我在下面
但是当我尝试卷曲或在浏览器中调用时,我得到
我还尝试使用指向faye服务器的相同IP的单独域并将其代理到localhost:9292
如下
但这也没有用。你能告诉我如何解决这个问题吗?
ruby-on-rails - Ruby on Rails 聊天应用程序无法在 Openshift 上运行 - Private_pub
我正在开发一个聊天也是一个模块的应用程序。我正在使用private_pub
gem 进行连接握手 - 除了 chat 之外,所有东西都在生产中正常工作。同时localhost
,包括聊天在内的一切都很好。我的应用程序部署在openshift上。我的 private_pub 配置如下
没有出现 faye / private_pub 错误 - openshift 上出现的唯一错误是
很抱歉,出了点问题 (500)
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:
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 的版本?