问题标签 [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 回答
391 浏览

ruby-on-rails-3.2 - 如何将 Private Pub 与具有分段键的资源路由一起使用?

我目前在 Rails 3 项目中使用 Private Pub 时遇到问题。所有示例都显示了发布/订阅这样的路由的用法: “/messages/new” 但是如果预期的路由更复杂一点,即。

路线.rb

这将创建以下内容

因此,我这样使用它:

看法:

= subscribe_to "/messages/#{@cid}/chat"

咖啡响应视图:

但是该块永远不会被触发!应该是同一条路线吧?我的意思是,段键匹配......它根本不会在任何视图中工作,块内的代码永远不会到达。我究竟做错了什么?

请帮我!

何塞。

笔记。我看到的所有示例似乎都展示了使用此 gem 进行一般聊天。我的目的是为各种点对点私人对话创建各种渠道(如 Facebook 聊天)

0 投票
0 回答
438 浏览

ruby-on-rails - 如何在 Rails 3 中构建一个真正的聊天应用程序?

我正在构建一个具有聊天功能的网络应用程序。我决定为此使用私人酒吧宝石。但是在私人酒吧中,您必须使用此代码段订阅频道

现在我希望这段代码在两个客户端(发起聊天请求的客户端和接收聊天请求的客户端)上执行,并且也使用唯一的频道,这样只有一对客户端订阅了频道。我可以让聊天发起者订阅一个频道,但我如何让另一端的“预期”客户端订阅该特定频道?

我是否应该在数据库中保留一个用于 javascript 的字段,并在该字段不为空时让客户端执行它?..of course 在这种情况下我将不得不使用长轮询。

0 投票
1 回答
1112 浏览

ruby-on-rails - Rails 应用程序中的私人 pub 问题

我有文章模型,我想在用户登录或使用 private_pub gem 发布新文章时向用户显示主页上的 Flash 消息等通知

文章控制器.rb

文章.js.coffee

在我的 static_pages/home.html.erb

当我创建一篇新文章时,它创建成功但什么也没有发生没有通知

0 投票
1 回答
1982 浏览

ruby-on-rails - 如何让 Private_Pub 与 Rails 4 一起使用?

我试图了解如何使用自述文件的替代用法语法让 private_pub 与 Rails 4 一起使用。它不适合我。

我使用单个控制器和索引操作(设置为根路由)创建了一个全新的 Rails 4 应用程序。

home_controller.rb

home.js.coffee

我启动了faye服务器

rackup private_pub.ru -s thin -E production

我启动了 Rails 服务器,然后转到根页面(“home#index”),但什么也没发生。faye 服务器显示没有任何事情发生。根据我的理解,当我访问 home#index 时,我“应该”会弹出一个警告框,但什么也没发生,我不知道为什么。

有任何想法吗?谢谢。

0 投票
3 回答
550 浏览

ruby-on-rails - RubyOnRails - PrivatePub Gem - 通过单个订阅查看多个发布

我使用 private_pub 作为实现通知系统的 gem,就像 Facebook 提供的那样。为此,我订阅了视图中的频道并从不同的地方(不同的控制器)发布。

发生的事情是,有时我会为单个订阅获得很多发布。你知道为什么会发生这种情况吗?

我的第一个怀疑是我可能多次调用我的 notify 方法(在某种循环或其他情况下,但我可以看到它只被调用一次,所以我猜问题一定是在 pub/sub 之间的某个地方层,很可能是因为我在通知视图时做错了什么。

接下来,我将介绍一些我的实现片段。

在我网站的 _header.html.erb 部分中,我订阅了用户的通知频道,如下所示:

例如,在我的friendships_controller 中,当添加朋友时,我会生成一些html 来呈现通知并发布带有前置通知的jquery,如下所示:

html_text = render_to_string(:partial => 'notifications/notification', :locals => { notification: notification }, :formats => [:html]).squish jquery = "$('#notifications_" + user.id.to_s + "').prepend('#{html_text}');" PrivatePub.publish_to("/notifications/" + user.id.to_s, jquery)

很抱歉发了这么长的帖子,希望你们中的一些人能帮助我。提前致谢。

顺便说一句,我正在运行带有 Ruby 2.0.0p247 的 Rails 4.0.0。

0 投票
1 回答
841 浏览

ruby-on-rails - 如何在rails3中使用apache2为private_pub gem启用faye的瘦服务器

private_pub在我的应用程序中使用 gem 进行实时聊天,rails 3.2它在开发模式下运行良好,但我被困在如何在生产中做到这一点。

apache2在生产中使用。当我在服务器上运行此命令时

RAILS_ENV=production bundle exec rackup private_pub.ru -s thin -E production

它启动thin服务器,但我的应用程序一直在等待来自的响应 http://www.example.com:9292/faye.js

它什么也没做。我无法在生产中faye连接

提前感谢您的帮助

0 投票
0 回答
144 浏览

ruby-on-rails - Faye消息发布延迟

我在 VMWare Ubuntu 12.04 实例上使用带有faye服务器的 Rails 应用程序用于 pub/sub(private_pub、faye 1.0、puma服务器)。当实例在 PC(或部署到服务器的应用程序)上运行时一切正常,但在笔记本电脑上,来自 rails 的每条消息发布都有 5-10 秒的延迟。实例有足够的 CPU 和 RAM 资源(例如,测试套件和 Rails 服务器运行速度足够快,就像在 PC 上一样)。我应该如何寻找瓶颈?faye 和 private_pub 都不写任何正常的日志来分析。

示例应用程序来源:https ://github.com/resure/private_pub_test

0 投票
1 回答
249 浏览

ruby-on-rails - 使用 RSPEC、private_pub 和 Resque 进行验收测试

我正在寻找一些关于为使用 Ryan Bates 的 private_pub gem ( https://github.com/ryanb/private_pub ) 和 Resque的过程编写验收测试的指导。

在我的控制器中,我有一个执行操作,该操作将 Resque 中的文件生成过程排队,然后发出 AJAX 请求以显示“等待”模式窗口。模态窗口包含用于订阅 private_pub 频道并在该频道上等待消息的 javascript。在 Resque 工作程序中完成文件生成过程后,带有新生成文件名的消息将被推送到 private_pub。模式中的 javascript 接收消息并使用文件名在浏览器中开始下载文件。

我正在寻找有关在此过程中运行测试的技术建议。我考虑过模拟 private_pub 服务器(在经过多次谷歌搜索后甚至不知道如何完成此操作),以便它简单地返回一个预先准备好的文件。基本上我认为我需要一种方法来练习我的工作流程,而无需在我的测试环境中运行 private_pub 服务器和整个 Resque 基础设施。

0 投票
2 回答
1155 浏览

ssl - 将 private_pub 与 SSL 一起使用

我已经根据https://github.com/ryanb/private_pub#serving-faye-over-https-with-thin设置了带有 SSL 的私人酒吧,还添加了daemonize: true(有无测试)。

我可以浏览https://mydomain.com:4443/faye.js并加载。

页面上没有错误。

然而,实际上没有任何工作,即没有实时事件触发。尝试PrivatePub.publish_to在控制台中时,我得到:

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

当我运行非守护程序的瘦服务器时,我可以看到它<SSL_incomp>在尝试 publish_to 时返回。

服务器上的 SSL 工作正常,我该如何解决这个问题?

0 投票
3 回答
1220 浏览

ruby-on-rails - 将 Private-pub 与具有分段键和咖啡脚本变体的频道一起使用

我正在尝试使用private_pub复制类似于 facebook 的推送通知系统。理想情况下,我想链接它以使用诸如gritter 之类的 gem 显示通知(欢迎其他 gem 建议)

每当调用来自控制器的某个操作时,我想向属于特定 ID 的所有订阅者发送通知。只要您登录,您就会订阅频道,通过将 放入subscribe_to布局中来实现。

在视图中:

在控制器中

这工作得很好,但是我希望有一些比alert作为响应更复杂的东西(例如 grinter 通知),所以改为:

按照教程,他们为此使用咖啡脚本。但是,我无法发出简单的警报(可能是由于频道中的 id)

这个问题中,OP 能够使用 js.erb 视图解决这个问题。但我无法让它工作。

免责声明:我的js和coffeescript知识几乎为零。

任何帮助表示赞赏:)


编辑

更多信息:我在控制器中有一个方法,它是公共 API 的一部分,并且需要 POST 请求。如果一切正常,它会发出 JSON 成功响应。除此之外,相同的方法会向特定组的所有用户发送通知。

我实际上已经设法让它工作,把它放在控制器中:

回调方法:

并将粗磨的东西放入my_api_controller/callback.js.erb

注意:由于订阅频道是在每个视图中完成的(通过布局),您可以在任何页面/视图上收到通知

我现在的问题是,你可以猜到,JSON 响应。由于我无法呈现两个响应,因此只调用了 js.erb,但从不发送 JSON 响应