4

正在研究使用 PubNub 向用户的网络浏览器发送实时更新。

我查看了他们的网站和资料。看起来他们有几个不同的选择。

我们想用它来向用户正在查看的网页发送实时更新。这些信息很简单,例如“您刚刚收到一条消息”。我们不是在尝试实现聊天程序或类似的东西。

PubNub 是一个很好的解决方案吗?如果是这样,应该使用哪个版本的服务?

我们在 Heroku 服务器上运行 Django。

非常感谢!

4

3 回答 3

10

PubNub Facebook 通知

这是一个类似于 Facebook 的 Window Box 的示例,它通过 PubNub 向您的用户发送自定义消息。您可以在他们的手机或浏览器上向您的用户发送更新。这将向您的用户显示通知;任何通知你。

使用 PubNub 允许在您的应用程序中使用通过 WebSockets、BOSH、Comet 和其他机制的数据推送,使您能够随时 通过MASS BROADCASTINDIVIDUAL NOTIFICATIONS直接向您的用户发送数据。

从这里开始:现场演示

立即尝试:http: //pubnub-demo.s3.amazonaws.com/facebook-notification/index.html

下载源代码: https ://github.com/pubnub/javascript/tree/master/examples/facebook-notification

从这里开始以便轻松复制/粘贴代码。这很容易上手,我们建议您在开始之前从上面的示例链接开始。

设置您的页面

首先包括FBootstrap资源,以提供通知窗口的外观。将这些样式添加到您的 HTML 文件中。

<link href=bootstrap.css rel=stylesheet>
<style type=text/css> body { padding-top: 60px; } </style>

数据连接代码

接下来,您需要设置 PubNub 数据连接,然后添加规则,以便在收到数据后如何处理数据。

   <script src="https://pubnub.s3.amazonaws.com/pubnub-3.1.min.js"></script>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-modal/2.2.6/js/bootstrap-modal.js"></script>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script>(function(){

    // PubNub (For Data Push to User)
    var pubnub = PUBNUB.init({
        subscribe_key : 'demo',
        ssl           : false
    });

    // Setup New Data Push Connectoin via PubNub
    pubnub.subscribe({
        restore  : true,
        channel  : 'example-user-id-1234',
        callback : show_notification
    });

    // Setup Alert Window
    $('#new-alert').modal({ keyboard : true });

    // Show the Notification Window
    function show_notification(message) {
        $('#new-alert').modal('show');
    }

    // Simulate Notification
    $('#simulate-notification').bind( 'mousedown', function() {
        pubnub.publish({
            channel : 'example-user-id-1234',
            message : 'alert'
        });
        return false;
    } );

    })();</script>

Python 推送示例

接下来,您需要将此python代码添加到您的Django或任何其他框架中。您可以将其添加到message post应用程序的代码中。这将向您的用户发布通知。此特定示例将导致通知出现在 Facebook 通知页面内。

pip install pubnub

Python 源代码

## PubNub Setup
import pubnub from Pubnub
pubnub = Pubnub( 'demo', 'demo', None, False )

## Push Notice to 'example-user-id-1234'
info = pubnub.publish({
    'channel' : 'example-user-id-1234',
    'message' : { 'your-data' : 'any-data-here' }
})
print(info)
于 2012-07-26T04:57:34.687 回答
8

对于一些不太通用的东西,使用由 Django 提供的 API 触发的信号和非常强大的通道安全性,请查看https://github.com/sivang/django-pubnub(直接来自烤箱;))。

于 2012-12-19T22:19:22.930 回答
1

我用 pubnub 和 socket.io 做这种事情......客户端很容易管理,这要归功于多路复用。我的代码如下所示:

var pubnub_setup = {
    channel       : 'xxx',
    publish_key   : 'xxx',
    subscribe_key : 'xxx'
};

var price_update = io.connect( 'http://pubsub.pubnub.com/price_update', pubnub_setup );
var table_update = io.connect( 'http://pubsub.pubnub.com/table_update', pubnub_setup );    

price_update.on( 'connect', function() {
          // do stuff here
} );
table_update.on( 'connect', function() {
          // do stuff here
} );
table_update.on( 'message', function(message) {
          // do stuff here
} );

PN 与 socket.io https://github.com/pubnub/pubnub-api/tree/master/socket.io

与 socket.io 多路复用http://vimeo.com/34496366

于 2013-04-03T09:55:29.810 回答