Realtime Messaging

Realtime Messaging

Send and receive messages cross-platform and cross-device with robust yet simple APIs for global publish/subscribe messaging.

PubNub DSN delivers Realtime Messaging APIs for mobile, web, IoT, desktops, and servers, enabling bidirectional low latency messaging to anywhere on the globe. Chock full of features and functionality, Realtime Messaging APIs are the most efficient, secure, and flexible way to connect every device on Earth.

Realtime Messaging Your Way

PubNub offers two different models for delivering messages to meet your application and business needs. Because pub/sub shouldn’t be one size fits all.

Messages
  • Full global replication
  • 99.999% uptime SLA
  • Unlimited message catchup
  • Integrated push notifications
  • Up to 32KB payload
Signals
  • Delivery to all connected users
  • Swift, reliable delivery
  • Most recent message catchup
  • Priced for high volume
  • 30B payload

What Comes with Realtime Messaging on the PubNub DSN?

Publish/Subscribe
Publish/Subscribe

The core of PubNub. Send and receive data to any number of connected devices in a ¼ second.

Stream Controller
Stream Controller

Efficient and optimized. Subscribe to 10,000s of streams with a single socket connection.

Storage & Playback
Storage & Playback

Never lose data. Store and retrieve message history, and use message catchup when disconnected.

TLS/AES
TLS/AES

Security is paramount. TLS connectivity and built-in AES256 libraries deliver secure point-to-point and end-to-end encryption.

Fuel For Developers. Fuel For Innovation.

APIs and infrastructure. PubNub DSN gets you to market and success, faster.



70+ SDKs For Development Without The Headaches

With SDKs for every language and every device, PubNub DSN works seamlessly between web, mobile, IoT, and everything in between.

Global Scale (We Mean It)

PubNub Data Stream Network connects 15 global points-of-presence to provide low-latency messaging between any number of devices and any number of users, anywhere on Earth.

Built And Battle Tested For The Real World

Hardened and secure, Realtime Messaging handles whatever the real world throws at it. PubNub automatically manages dropped connections, unreliable networking environments, firewalls, and comes standard with AES/TLS encryption.

How It Works: Code Example

  • JavaScript
  • Android/Java
  • iOS
  • .Net
  • var pubnub = new PubNub({
  • subscribeKey: 'demo',
  • publishKey: 'demo',
  • });
  • pubnub.addListener({
  • message: function (message) {
  • console.log('message came in: ', message)
  • }
  • });
  • pubnub.subscribe({ channels: ['ChatRoomChannel'] });
  • pubnub.publish({ channel: 'ChatRoomChannel', message: 'Hello, world!' }, (publishStatus)=>{
  • if (publishStatus.error) {
  • console.error('Non 200 response', { publishStatus });
  • return ;
  • }
  • console.log('I just published my hello!');
  • });
  • PNConfiguration pnc = new PNConfiguration() .setSubscribeKey("demo") .setPublishKey("demo");
  • PubNub pubnub = new PubNub(pnc);
  • pubnub.addListener(new SubscribeCallback() {
  • @Override
  • public void message(PubNub pubnub , PNMessageResult message) {
  • System.out.println(message);
  • }
  • });
  • pubnub.subscribe().channels(Arrays.asList("chatChannel")).execute();
  • Map message = new HashMap();
  • message.put("Hello", "world!");
  • pubnub.publish()
  • .channel("chatChannel")
  • .message(message)
  • .async(new PNCallback<PNPublishResult>() {
  • @Override
  • public void onResponse(PNPublishResult result, PNStatus status) {
  • if (status.isError()) {
  • System.out.println(status);
  • } else {
  • System.out.println("Published!");
  • }
  • }
  • });
  • class Listener: NSObject, PNObjectEventListener {
  • func client(_ client: PubNub, didReceive status: PNStatus) {
  • if status.isError {
  • // Handle error
  • return
  • }
  • }

  • func client(_ client: PubNub, didReceiveMessage message: PNMessageResult) {
  • print("Received message!!! \(message.debugDescription)")
  • }
  • }
  • let myListener = Listener()
  • let configuration = PNConfiguration(publishKey: "demo", subscribeKey: "demo")
  • pubnub = PubNub.clientWithConfiguration(configuration)
  • pubnub.addListener(myListener)
  • pubnub.subscribeToChannels(["ChatRoomChannel"], withPresence: true)
  • pubnub.publish("Hello, world!", toChannel: "ChatRoomChannel", completion: { (status) in
  • if status.isError {
  • // Handle error
  • return
  • }
  • })
  • PNConfiguration pnConfiguration = new PNConfiguration();
  • // subscribeKey from admin panel
  • pnConfiguration.SubscribeKey = "demo"; // required
  • // publishKey from admin panel (only required if publishing)
  • pnConfiguration.PublishKey = "demo";
  • // secretKey (only required for access operations)
  • Pubnub pubnub = new Pubnub(pnConfiguration);
  • pubnub.Subscribe<string>()
  • .Channels(new string[] {
  • // subscribe to channels
  • "ChatRoomChannel"
  • })
  • .Execute();
  • string[] arrayMessage = new string[] {
  • "Hello",
  • "world!"
  • };
  • pubnub.Publish()
  • .Message(arrayMessage.ToList())
  • .Channel("ChatRoomChannel")
  • .ShouldStore(true)
  • .UsePOST(true)
  • .Async(new PNPublishResultExt(
  • (result, status) => {
  • // Check whether request successfully completed or not.
  • if (status.Error) {
  • // something bad happened.
  • Console.WriteLine("error happened while publishing: " + pubnub.JsonPluggableLibrary.SerializeToJsonString(status));
  • } else {
  • Console.WriteLine("publish worked! timetoken: " + result.Timetoken.ToString());
  • }
  • }
  • ));

Testimonials

eBay

Buyer/Seller Chat

Just Eat

Notifications and Alerts

Ring Central

SIP

August

Device Control and Monitoring

Glide

Video Chat Signaling

CBS

Billboard content delivery

Kings

Second Screen Interactivity

One Drop

HIPAA-compliant Chat

Under the Hood

Efficient
  • Publish streams of data on unlimited channels -- even a channel per device.
  • Easy multiplexing and channel grouping allows subscribe to 10,000s of streams over a single socket connection.
  • Automatic compression of messages means optimal bandwidth usage.
  • Maintains always-on socket connections with optimal low-battery drain.
Fast
  • 250ms latencies worldwide.
Reliable
  • Auto catch-up on messages when device experiences unstable connectivity to the internet.
  • Automatic message bundling to handle deliverability on devices with slow or spotty network connections.
  • Unlimited storage for unlimited number of streams.
Secure
  • Device establishes secure tunnel to PubNub: no open listening ports required!
  • TLS connectivity and built-in AES256 libraries deliver secure end-to-end encryption.
  • Subscribe filtering lets devices listen to a subset of messages from a stream.

SDKs and Resources

Getting Started Tutorial
Getting Started Tutorial

Setting up PubNub and sending/receiving messages.

Read Basics Guide
SDKs + Documentation
SDKs + Documentation

70+ SDKs and comprehensive technical docs.

Read Technical Docs
Best Practices Playbook
Best Practices Playbook

How to use PubNub the right (and wrong) way.

Read Best Practice Playbook

Ready To Get Started?

Contact Sales