• Stars
    star
    205
  • Rank 191,226 (Top 4 %)
  • Language
    HTML
  • License
    Other
  • Created over 11 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This repository includes full app code for streaming stock quote data from PHP to a JavaScript HTML5 app. The PubNub Real-time Network offers a Globally Distributed solution for streaming real-time data to millions of users in less than 0.25 seconds. This provides developers the capability to utilize the Service Mediation aspect of the PubNub network to stream data over TCP socket connections using WebSockets and other protocols. This repository is an HTML5 JavaScript and CSS3 example using live real-time data stream from a server. Where PubNub fits in is in the mediation and brokering of the message stream in real-time to millions of people. The PubNub Real-time Network provides highly reliable services for real-time data streams. The PubNub Real-Time Network Build real-time apps quickly and scale them globally.

Real-time Stocks with PHP and JavaScript

TRY IT NOW! - http://rtstock.co

You are looking at a real-time stock app that sends data from a PHP Server Process to an HTML5 JavaScript app in real-time. Stock Quotes are broadcast from the PHP Server into the PubNub Network where the HTML5 JavaScript app will receive quotes data and display it in real-time.

This is a brief walkthrough of how we built the Real-time Stock Streaming application using PHP and JavaScript leveraging the PubNub Real-time Network as the Data Channel broker.

The PHP Process can be run in parallel with other PHP processes which allows publishing of real-time quote data into the PubNub Cloud. The JavaScript HTML5 App is able to receive a user-selected variety of symbols.

This application is based on Channel Groups, History and Access Manager features. All of them can be enabled in your PubNub Admin Console.

Real-time Stock Feed PHP JavaScript

Data Stream Controller

Data Stream Controller feature provides PubNub developers the ability to efficiently subscribe to multiple channels via Channel Multiplexing (MXing) and Channel Groups.

With Stream Controller your app can efficiently and effectively stream many symbols at the same time over a single TCP Socket Connection using Channel Groups or Channel Multiplexing features.

Without Stream Controller capability, streaming data from a group of symbols would be impractical and impossible because each symbol would require a dedicated TCP Socket; this does not scale.

Channel Groups

Channel Groups allows PubNub developers to bundle thousands of channels into a "group" that can be identified by name. These Channel Groups can then be subscribed to, receiving data from the many backend-channels the channel group contains.

In this app all ticker(stock) names are collected inside a "stockblast" group by server-side logic inside bootstrap.php script. All you need is to subscribe to this group on client-side by specifying it's name only. All messages from channels, included into this group, will be received inside receiver callback handler.

Example Channel Group Scenario in JavaScript
// Subscribe to Channel Group
pubnub.subscribe({
    channel_group: 'stockblast',
    message : receiver
});

// The Receiver Function
function receiver(update, envelope, group, latency, channel) {
    // Ignore disabled tickers
    if (disabledTickers.has(channel)) {
        return;
    } else {
        console.log(update)
    }
}

In CG it's impossible to disable data transmission for a specific channel, you may only ignore these data in your code logic. If you need to have a strict control of what data should be transmitted or what not, look for Channels Multiplexing feature.

Multiplexing

This is an another way to subscribe to tickers, especially useful if the most of your clients are mobile devices. Channel Multiplexing can help you to reduce network and battery usage. With the PubNub JavaScript SDK, Multiplexing is always enabled and auto-optimizes the connection for each subscription issued.

Example Multiplexing Scenario in JavaScript
// Example JavaScript Multiplexing with Three Symbols
pubnub.subscribe({
    channel : ['MSFT', 'YHOO', 'ORCL'],
    message : receiver
})

// Add Three More Symbols (Automatic Multiplexes into the TCP Stream)
pubnub.subscribe({
    channel : ['AAPL', 'F', 'GOOG'],
    message : receiver
})

// The Receiver Function
function receiver(update) {
    console.log(update)
}

If you have Data Stream feature enabled you can keep channels list synchronized via channel group but do not subscribe to the whole group (using channel_group field). Fetch the list of group's channels using channel_group_list_channels function and subscribe to them as usual channels array using Channels Multiplexing.

If Data Stream feature is disabled, it's up to you where to store a channels list. One solution is to store the list as the last message of some channel and fetch it via history() call when needed. Another option is to store this list in external storage, DB, etc, but you should keep in mind that both server and client should have access to this storage.

In all of above cases the subscription is done using Channel Multiplexing feature, the fetched channels are passed to the subscribe() function via channel field as an array.

Example Multiplexing Scenario in JavaScript
// Option #1. Fetch channels list from channel group
pubnub.channel_group_list_channels({
    channel_group: 'stockblast',
    callback: function (response) {
        subscribeToStock(response.channels)
    }
});

// Option #2. Fetch channels list as the last message using history
pubnub.history({
    channel: "stockblast-channels",
    count: 1,
    callback: function (response) {
        subscribeToStock(response[0])
    }
});

// Option #3. Fetch channels from an external storage
externalStorage.getChannels(function (channels) {
    subscribeToStock(channels);
});

function subscribeToStock(channelsList) {
    pubnub.subscribe({
        channel: channelsList,
        message : receiver
    });
}

function receiver(update, envelope, group, latency, channel) {
    // TODO: handle update
}

If you don't need some channel anymore, you are able to unsubscribe from it and messages on this channel will no longer be transmitted. To enable channel again, just invoke another subscribe call and pass a channel name to the channel field.

Example of enabling/disabling specific channel subscription in JavaScript
function weDontNeedThisChannelMore(channel) {
    pubnub.unsubscribe({
        channel: channel
    });
}

function weNeedUnsubscribedChannelAgain(channel) {
    pubnub.subscribe({
        channel: channel,
        callback: receiver
    })
}

Windowing and Gzip Compression and Tuning

There are two important tuning levers available to you with the PubNub JavaScript SDK for improved performance vs reduced bandwidth. Consider the compression ratio savings to latency opportunity. With windowing you receive the opportunity to reduce bandwidth consumed drastically by allowing messages to be bundled.

This Bundle of Messages is allowed to accumulate on the network buffer before the client receives an update. This is a good thing as we have the opportunity now to highly compress the data using streaming GZIP compression. This combination of windowing and gzip compressing provides high throughput at low bandwidth costs; saving you and your end-consumers a lot of bandwidth.

Here follows the details on how to access this windowing feature along with a general expected rate of messages per second.

var pubnub = PUBNUB.init({
    windowing     : 1000,  // Allow 1 Second to Buffer and Construct each bundle.
    timeout       : 2000,  // Expected to receive at least 1 message each 2 Second.
    subscribe_key : 'demo'
});

Note that the lower the windowing value the less compression opportunity and the higher the value the more latency is allowed for bundled messages with high compression ratios. The provided numbers above are recommended for streaming stock symbols.

PubNub Keys

Along with demo keys you can specify the custom ones. For Real Time Stocks app there are two places where you should put them.

First, export an environment variables to your server console session from which you will run bootstrap.sh and go.sh scripts. There is a bootstrapped .env file inside php-bootstrapping folder that helps to do it. Replace environment variables in this file with yours and source this file with . .env console command.

Example of .env file
PUBNUB_PUB_KEY="demo"
PUBNUB_SUB_KEY="demo"
PUBNUB_SECRET_KEY="demo"
PUBNUB_AUTH_KEY="my_secret_auth"

You can provide PubNub keys to JS client by the way you want, even just hardcode them inside your HTML, JS code. The current example app uses Apache server and PHP to share these keys sharing them as a JSON object like {"publish_key": "your_pub_key", "subscribe_key": "your_sub_key"}. To not publish PubNub keys inside source code control system, it's better to keep it inside Apache .htaccess or similar env variables storage for other servers.

Example of .htaccess file
SetEnv PUBNUB_PUB_KEY demo
SetEnv PUBNUB_SUB_KEY demo

The reason is that your source control system should ignore this file.

According to client-side logic, if web server is down or other HTTP error is happened, client will fall back to the default demo/demo keys, so serving PubNub keys via dynamic web-server is not necessarily.

PHP Server Broadcaster

The PHP server code included in the php-broadcaster directory. To get started you'll execute the server logic as follows:

PHP Example with MSFT stock
screen -dmS MSFT php stock.php MSFT 102.67 250000 2500000 100 25

This example launches the stock streamer with default starting values:

 - TICKER ID:                           MSFT
 - PRICE:                               102.67
 - MIN TRADE FREQUENCY (microseconds):  250000
 - MAX TRADE FREQUENCY (microseconds):  250000
 - VOLATILITY:                          100
 - MAX DELTA PERCENT (before reset):    25

This example will launch the PHP process in a screen session which starts transmitting randomized variants based on the starting args. This is a good starting point for you and easy to see where you can easily begin to insert other types of data or even an alternative stock stream source.

For further details on how we run this PHP code, you can review our go.sh bash shell script which runs multiple instances of the PHP process for each stock ticker:

#!/bin/bash

PUB=$PUBNUB_PUB_KEY
SUB=$PUBNUB_SUB_KEY
AUTH=$PUBNUB_AUTH_KEY

screen -d -m -S bidu php stock.php BIDU 102.67 250000 2500000 25 0 $PUB $SUB $AUTH
screen -d -m -S cbs  php stock.php CBS   48.03 250000 2500000 25 0 $PUB $SUB $AUTH
screen -d -m -S ea   php stock.php EA    23.61 250000 2500000 25 0 $PUB $SUB $AUTH
screen -d -m -S fb   php stock.php FB    23.29 250000 2500000 25 0 $PUB $SUB $AUTH
screen -d -m -S goog php stock.php GOOG 879.73 250000 2500000 25 0 $PUB $SUB $AUTH
screen -d -m -S lnkd php stock.php LNKD 170.70 250000 2500000 25 0 $PUB $SUB $AUTH
screen -d -m -S msft php stock.php MSFT  35.67 250000 2500000 25 0 $PUB $SUB $AUTH
screen -d -m -S orcl php stock.php ORCL  33.81 250000 2500000 25 0 $PUB $SUB $AUTH
screen -d -m -S tri  php stock.php TRI    3.77 250000 2500000 25 0 $PUB $SUB $AUTH
screen -d -m -S yhoo php stock.php YHOO  27.04 250000 2500000 25 0 $PUB $SUB $AUTH
screen -d -m -S znga php stock.php ZNGA   2.84 250000 2500000 25 0 $PUB $SUB $AUTH
Non-screen Example
php stock.php GOOG 879.73 250000 2500000 100 25

This is a simple non-GNU-screen example of running the PHP Process.

HTML5 Client Bootstrapping

For the server which is providing all the quote streams, you can use the bootstrap.sh file in the php-broadcaster directory to bootstrap the available symbol streams. Shell script is a wrapper that adds PubNub credentials from .env file to bootstrap.php call. Just execute the script after you've launched or changed new PHP Streams:

cd php-broadcaster
./bootstrap.sh

This will look for all running stock.php processes and add their names into stockblast channel group. HTML5 app will subscribe this group later.

NOTE: You must have running stock.php processes on the same machine.

The client HTML5 JavaScript App will execute:

pubnubStocks.subscribe({
    backfill: true,
    channel_group: channelGroup,
    message: updateStock,
});

This will bootstrap the client based on what was running on your server at the time of running ./bootstrap.php command.

History

This application uses a pubnub.history() call to load the history of the chat conversations.

Backfill

This application also demonstrates the capability to opportunistically preload a message bundled with most recently streamed symbol updates. This is an optimization and also makes it easier to pre-load data from the multiplexed stream very quickly rather than waiting for updates to piece together the stream one-by-one which causes the UI to stagger for a few moments as it builds the display. Therefor Backfill is a great optimization in performance and usability!

Simple Embedded Chat Application

Also provided here in this stock demo is a basic chat which allows you to communicate with a group of collaborators in real-time. The chat stream is separate from the stock symbol ticker stream.

Real-time Stock Feed PHP JavaScript Chat

NOTE: This is a basic chat where you can find the integrated source code currently inside script.js JavaScript source file.

Here is the full source code for the chat example:

<!-- =========== -->
<!-- PANEL: CHAT -->
<!-- =========== -->
<div class="row row-margin">
    <form class="form">
        <div class="col-lg-8 form-group">
            <input type="text"
                   id="chat-input"
                   value=""
                   placeholder="Chat Here"
                   class="col-lg-12 form-control">
        </div>
        <div class="col-lg-3 col-lg-offset-1 form-group">
            <div class="input-group">
                <input type="text"
                       id="chat-name"
                       value="Todd"
                       class="form-control">
                <span class="input-group-addon">
                <span class="fui-user"></span>
                </span>
            </div>
        </div>
        <div id="chat-output" class="col-lg-12">
            <!-- CHAT OUTPUT HERE -->
        </div>
    </form>
</div>

Followed by the JavaScript code which uses the id= fields to bind user events and as display output blocks on the screen:

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//
// Initialize Chat
//
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function initializeChat() {
  var pubnubChat  = PUBNUB.init($.extend({
        noleave: true,
      }, credentials)),
      input   = pubnubChat.$('chat-input'),
      output  = pubnubChat.$('chat-output'),
      cname   = pubnubChat.$('chat-name'),
      channel = 'stock-chat';

  // Send Chat Message
  function sendMessage() {
    if (!input.value) return;
     return pubnubChat.publish({
      channel: channel,
      message: {
        name: clean(cname.value),
        text: clean(input.value),
        time: dateOut(),
      },
      x: (input.value = ''),
    });
  }

  // Append Chat Message
  function appendMessageToChat(message) {
    // Default Name
    if (!('name' in message)) message.name = 'Robert';
    message.name = message.name.slice(0, 10);

    // Clean Precaution
    message.text = clean(message.text);

    // Don't Show Blank Messages
    if (!message.text.replace(/\s/g, '')) return;

    // Ouptut to Screen
    output.innerHTML = pubnubChat.supplant(
        '<strong class=chat-time>{time}</strong> ' +
        '<strong class=chat-name>( {name} )</strong> | &nbsp;' +
        '\'\'{text}\'\'<br>', message
      ) + output.innerHTML;
  }

  // On Connect we can Load History
  function connect() {
    pubnubChat.history({
      channel: channel,
      limit: 50,
      callback: function(msgs) {
        if (msgs.length > 1) {
          pubnubChat.each(msgs[0], appendMessageToChat);
        }
      },
    });
  }

  // Receive Chat Message
  pubnubChat.subscribe({
    channel: channel,
    connect: connect,
    callback: appendMessageToChat,
  });

  pubnubChat.bind('keyup', input, function(e) {
    (e.keyCode || e.charCode) === 13 && sendMessage();
  });

}

PubNub Access Management

PubNub provides builtin enterprise-grade security with fine-grained access control to all of your PubNub applications with PubNub Access Manager, Message Layer encryption with AES256, and Transport Layer Security with TLS and SSL. Before using this feature it must be enabled in the PubNub Admin Console.

Real-Time Stocks app uses this feature to control access to channels and channel groups. Permissions for stock tickers and front-end client are assigned inside bootstrap.php script.

The stockblast channel group should be accessible for listening for all unauthorized users, but only the server-side bootstrapping script (bootstrap.php) should have permissions to manage this group, i.e. adding or removing channels from it.

// All unauthorized users can listen for this group
$response = $pubnub->pamGrantChannelGroup(1, 0, $group);

// Channel group management permissions
$response = $pubnub->pamGrantChannelGroup(0, 1, $group, $bootstrap_auth);

If you use Channel Multiplexing instead of Channels groups, you need to grant read permissions on a ticker channels (like 'GOOG', 'FB', etc.) for all unidentified users and leave off granting permissions for the stockblast channel group.

// Unauthorized listeners
$response = $pubnub->grant(1, 0, join(",", $channels));

The write permissions should be granted on the same channels for tickers (stock.php) with pre-defined in environment variables auth_key.

// Tickers:
$response = $pubnub->grant(0, 1, join(",", $channels), $auth_key);

On the main page of Real-Time Stocks example you can also find history and chat examples. To load history you need only read permissions while for chatting app all unauthorized users should be able both to read and to write.

// History
$response = $pubnub->grant(1, 0, $history);

// Chat
$response = $pubnub->grant(1, 1, $chat);

The PubNub Real-Time Network

Build real-time apps quickly and scale them globally.

The only global network for real-time data.

Thousands of mobile, web, and desktop apps rely on PubNub's real-time network to deliver highly scalable real-time data to tens of millions of users worldwide. From innovative start-ups to globally recognized brands around the world, PubNub is powering a broad variety of apps: effective real-time advertising campaigns, global telecommunications apps, immersive Massively Multiplayer Online Games (MMOGs), responsive social apps, real-time ecommerce applications and a variety of business collaborative solutions.

  • Hosted in the Cloud: no deployment, scaling, or pricing hassles
  • Deployed in 11 data centers globally
  • 1000's of customers, millions of messages per second

More Repositories

1

eon

An open-source chart and map framework for realtime data.
Shell
879
star
2

pubnub-api

APIs for developers building secure realtime mobile, web, and IoT apps.
JavaScript
817
star
3

java

PubNub Java-based APIs for core Java, Android
Java
624
star
4

javascript

PubNub JavaScript SDK docs https://www.pubnub.com/docs/sdks/javascript
JavaScript
539
star
5

objective-c

PubNub Objective-C based APIs for iOS and OS X
Objective-C
178
star
6

react-chat-components

Chat UI Components to build chat applications with PubNub on React with TypeScript support
TypeScript
173
star
7

python

PubNub Python-based SDK with Asyncio support
Python
154
star
8

paper-chat

A simple chat room in Material Design build with Polymer (Polymer 0.5)
HTML
152
star
9

eon-map

Realtime maps with PubNub and MapBox.
JavaScript
135
star
10

php

PubNub clients for PHP
PHP
124
star
11

eon-chart

Realtime animated graphs with PubNub and C3.
JavaScript
123
star
12

ruby

PubNub Ruby-based APIs
Ruby
119
star
13

genetic-car-2

Genetic Cars 2 (Globally Distributed)
JavaScript
114
star
14

rltm.js

Easily swap realtime providers with a single code base
JavaScript
107
star
15

go

PubNub clients for Go
Go
104
star
16

arduino

The Official PubNub Arduino-based API!
C++
103
star
17

c-sharp

PubNub clients for C-Sharp based languages, including MS Windows C#/.net, Silveright, IIS, and Mono
C#
101
star
18

typescript-ref-app-team-chat

Team Chat Reference Application for PubNub Chat With React, Redux and TypeScript
TypeScript
98
star
19

chat-engine

Object oriented event emitter based framework for building chat applications in Javascript.
JavaScript
96
star
20

workshop-raspberrypi

IoT Hands On Workshop: Build a Realtime App with Raspberry Pi 2 and PubNub. Demo Web ->
Python
89
star
21

pubnub-angular

Official PubNub AngularJS SDK
JavaScript
84
star
22

angular-js

Example of AngularJS integration with the PubNub AngularJS SDK v1
CSS
78
star
23

webrtc-chat

A simple webrtc chatting application.
JavaScript
69
star
24

pubnub-xkcd

http://twitter.com/stephenlb - PubNub Powered xkcd MMO World Game. Live with WebSockets and rendered with HTML5 Canvas.
JavaScript
56
star
25

react

TypeScript
49
star
26

webgl-visualization

A visualization of the PubNub traffic in WebGL.
JavaScript
47
star
27

pi-house

A simplified version of Raspberry Pi House web interface.
CSS
47
star
28

c

PubNub clients for C, C++, and Raspberry Pi
C
46
star
29

d3-bubble

Showcasing d3 bubble chart using PubNub streaming data
CSS
43
star
30

c-core

PubNub for C and C-like platforms build home
C
43
star
31

open-growth

Open Growth - grow your business 10x by automating tedious workforce tasks with machines - rules-based "customer delighter" with MonkeyLearn ML/AI enriched customer profile building. A framework for Developers capable of delighting your customers with template generated multi-channel messages in realtime.
JavaScript
38
star
32

pubnub-chat-channel-presence

PubNub Chat with Channel Presence is a new and breakthrough technology that has never existed until now empowering you (the developer) to obtain details about a PubNub Channel's Occupants. Receive Server Sent Notifications World-wide from PubNub's 10 Data Centers regarding "Who's There?" - Who is online and who will receive PubNub messages.
JavaScript
37
star
33

pubnUber

PubNub Uber (phonegap)
JavaScript
35
star
34

transportation

PubNub Transportation Solution
CSS
33
star
35

video-sync

PubNub VideoSync SDK for YouTube Video Multi-user Playback
HTML
32
star
36

iot-push-demo

A simulated IoT panel desktop UI for Android (GCM) and iOS (APNS) push notification demo using Cordova
JavaScript
32
star
37

pubnub-angular2

JavaScript
32
star
38

unity

PubNub for Unity3D 5.x
C#
31
star
39

backbone

An example of BackboneJS integration with the PubNub library.
JavaScript
30
star
40

rust

PubNub Rust SDK.
Rust
29
star
41

pubnub-jscourse

HTML
28
star
42

dart

PubNub Dart SDK
Dart
27
star
43

super-simple-chat

A simple chat room demo for a PhoneGap tutorial
CSS
26
star
44

Unity-Realtime-Chat-Room-Tutorial

A realtime unity chat room for iOS, Android, web and others.
C#
26
star
45

pubnub-android-chat

Java
25
star
46

swift

PubNub native Swift SDK for iOS, MacOS, WatchOS, TvOS
Swift
24
star
47

oi-web-notifications

A simple realtime web notification demo
CSS
23
star
48

Realtime-RaspberryPi-Temperature-Humidity-Sensor

Stream live temperature and humidity readings from the Raspberry Pi and visualize through realtime charts and graphs
JavaScript
22
star
49

LeapMotionServoBots

LeapMotionServoBots
Java
21
star
50

pubnub-polymer

A Custom element to connect PubNub data stream.
HTML
19
star
51

eon-workshop

Hands on Exercises for the EON workshop
HTML
19
star
52

secure-key-exchange

Babel - Encrypted Self Destructing Messaging with Asymmetric Key Exchange Public-Private Crypto.
JavaScript
19
star
53

haskell

PubNub Haskell SDK
Haskell
18
star
54

pongnub

Realtime Multiplayer Online Pong
JavaScript
16
star
55

pubnub-rickshaw-memory

Publish the memory usage of a nodeJS instance in pubnub-rickshaw format
JavaScript
16
star
56

d3-wordcloud

Demo of a word cloud generated from messages from a chat room
JavaScript
15
star
57

pubnub-ember

PubNub Ember SDK
CoffeeScript
14
star
58

swift-radio-station

Swift
14
star
59

am-chat

A demo of using PubNub Access Manager to secure a public chatting experience.
JavaScript
14
star
60

pubstrap-chat

Bootstrap 3 Chat Plugin
JavaScript
14
star
61

flutter-ref-app-simple-chat

Dart
13
star
62

go-metrics-statsd

library for sending statsd messages via go-metrics https://github.com/rcrowley/go-metrics
Go
13
star
63

ios-swift-todo-app

Collaborative to-do app in swift
Swift
13
star
64

swift-ref-app-team-chat

Team Chat Reference Application for PubNub Chat With SwiftUI and ReSwift
Swift
13
star
65

chat-examples-javascript

Sample code and apps for PubNub’s Chat Resource Center
JavaScript
12
star
66

webgl-stackhack

A collaborative block painting game.
JavaScript
12
star
67

eon-builder

CSS
12
star
68

chat-engine-examples

Examples for angular, react, jQuery, and NodeJS
HTML
12
star
69

swift-apple-watch-heart-rate-pubnub-eon

Objective-C
12
star
70

collab-notes-react

A collaborative stickie note web app with React.js, ES6, and PubNub
CSS
12
star
71

easy-hacker-news-stream

The Easiest Way to Create a Hacker News Feed using Python and JavaScript - We’ve all been sitting in the back of a CS lecture or class and looked up from our laptop to actually listen and taken a quick peek around at everyone’s laptops. More likely than not, quite a few of those screens were displaying the all too familiar Hacker News orange. While maybe we should all pay attention more to the speaker, it seems new, cool news always takes precedence. So what if you were determined to never miss a single article? Or what if you wanted to get every update from the site and automate based off that new information? By leveraging the power of PubNub’s real time global network and scraping a little RSS everyone will never miss a new Hacker News article again.
HTML
12
star
72

lua

lua
Lua
11
star
73

flutter-demo-app

Dart
11
star
74

kotlin-telemedicine-demo

A sample application that demonstrates how to build a feature-rich chat app for telemedicine using PubNub Chat and PubNub Kotlin SDK
Kotlin
11
star
75

pubnub-drone

Parrot AR 2.0 Drone Controlled with PubNub
JavaScript
10
star
76

auth-chat-demo

A simple chat room demo using PubNub JavaScript pub/sub API for both client and server, combined with PubNub Access Manager APIs and OAuth.
JavaScript
10
star
77

chat-engine-tutorial

JavaScript
10
star
78

moderation-dashboard

Moderation Dashboard is a React application that provides moderation capabilities to Chat applications built using PubNub and PubNub Chat Components
JavaScript
9
star
79

chat-examples-java

Sample code and apps for PubNub’s Chat Resource Center
Java
9
star
80

pubnub-tessel

Getting Started Guide and Example Programs for Tessel.io / PubNub integration
CoffeeScript
9
star
81

polymer-cat-chat-v1

A simple chat room in Material Design build with Polymer (Polymer 1.0)
HTML
9
star
82

LinkItONE

PubNub LinkIt ONE Library
C++
8
star
83

redux

Redux based Client State Management for interacting with PubNub Realtime APIs
TypeScript
8
star
84

vue

JavaScript
8
star
85

pubnub-rickshaw

HTML
8
star
86

pubnub-bluetooth

Connect PubNub to tiny-circuits bluetooth module (nrf8001)
JavaScript
8
star
87

kafka-bridge

Messages from your Kafka cluster can be received on a target mobile device.
Rust
7
star
88

chat-engine-apple

Objective-C
7
star
89

tutorial-app-react-native

JavaScript
7
star
90

javascript-quickstart-platform

JavaScript
HTML
7
star
91

rabbitmq

Adapter to connect PubNub's real-time network with RabbitMQ deployments behind an enterprise's firewall
Java
7
star
92

bitcoin

Real-time BitCoin graphs with PubNub and D3.js
CSS
7
star
93

kotlin

PubNub Kotlin SDK
Kotlin
7
star
94

bootstrap-content-curator

A real-time feed management system using Bootstrap UI that enables the rapid authoring of feed headlines for applications in social news, social TV, social music, social sports, social commerce and social finance.
HTML
7
star
95

johnnyfive-eon

Realtime data visualization with PubNub EON Demo & Arduino: Displaying the data sent by Arduino with DS18B20 temperature sensor using Johnny-Five
HTML
7
star
96

pubnub-chatterbox-ios

Objective-C
6
star
97

brightscript

Brightscript
6
star
98

js-chat

PubNub JavaScript Chat SDK
TypeScript
6
star
99

graphql-pubnub-subscriptions

TypeScript
6
star
100

chat-examples-swift

Sample code and apps for PubNub’s Chat Resource Center
Swift
5
star