Rhiot Documentation
  • Introduction
  • Gateway
    • Camel Kura router
    • Monitoring
    • Customising
    • Camel components
      • Camel Bluetooth component
      • Camel GPS BU353 component
      • Camel GPSD component
      • Camel TinkerForge component
      • Camel Pi4j component
      • Camel Framebuffer component
      • Camel Webcam component
    • Eclipse Kura support
      • Camel components for Eclipse Kura
        • Camel Kura Wifi component
        • Camel Kura Cloud component
    • Mini gateway
      • Installing
      • GPS
  • Backend
    • Camel Components
      • Camel OpenIMAJ component
      • Camel PubNub component
  • Tooling
  • Performances
  • Steroids
  • Quickstarts
    • Kura Camel quickstart
    • AMQP Cloudlet quickstarts
    • MQTT Cloudlet quickstart
  • Articles, presentations & videos
  • Building
    • Manage Kura Maven dependencies
  • Releases notes
Powered by GitBook
On this page
  • Maven dependency
  • General URI format
  • URI Parameters
  • Consuming:
  • Producing

Was this helpful?

  1. Backend
  2. Camel Components

Camel PubNub component

PreviousCamel OpenIMAJ componentNextTooling

Last updated 3 years ago

Was this helpful?

Camel PubNub component can be used to communicate with the data stream network for connected devices. This component uses library

Maven dependency

Maven users should add the following dependency to their POM file:

io.rhiotcamel-pubnub${rhiot.version}

Avaliable for rhiot.version >= 0.1.1

General URI format

pubnub://<pubnubEndpointType>:channel[?options]

The following values are currently supported as pubnubEndpointType:

  • pubsub

  • presence

URI Parameters

Option

Default value

Description

publisherKey

The punub publisher key optained from pubnub. Mandatory for publishing events

subscriberKey

The punub subsciber key optained from pubnub. Mandatory when subscribing to events

secretKey

The pubnub secret key.

ssl

true

Use SSL transport.

uuid

The uuid identifying the connection. If not set it will be auto assigned

operation

PUBLISH

Producer only. The operation to perform when publishing events or ad hoc querying pubnub. Valid values are HERE_NOW, WHERE_NOW, GET_STATE, SET_STATE, GET_HISTORY, PUBLISH

Operations can be used on the producer endpoint, or as a header:

Operation

Description

PUBLISH

Publish a message to pubnub. The message body shold contain a instance of org.json.JSONObject or org.json.JSONArray. Otherwise the message is expected to be a string.

HERE_NOW

Read presence (Who's online) information from the endpoint channel.

WHERE_NOW

Read presence information for the uuid on the endpoint. You can override that by setting the header CamelPubNubUUID to another uuid.

SET_STATE

Set the state by uuid. The message body should contain a instance of org.json.JSONObject with any state information. By default the endpoint uuid is updated, but you can override that by setting the header CamelPubNubUUID to another uuid.

GET_STATE

Get the state object org.json.JSONObject by for the endpoint uuid. You can override that by setting the CamelPubNubUUID header to another uuid.

GET_HISTORY

Gets the message history for the endpoint channel.

Consuming:

Route that consumes messages from mychannel:

from("pubnub://pubsub:mychannel?uuid=master&subscriberKey=mysubkey").routeId("my-route")
.to("log:default?showHeaders=true");

Route that listens for presence (eg. join, leave, state change) events on a channel

from("pubnub://presence:mychannel?subscriberKey=mysubkey").routeId("presence-route")
.to("log:default?showHeaders=true");

Producing

Route the collect data and sendt it to pubnub channel mychannel:

from("timer:default?period=2000").routeId("device-event-route")
.bean(EventGeneratorBean.class, "getEvent()")
.convertBodyTo(JSONObject.class)
.to("pubnub://pubsub:mychannel?uuid=deviceuuid&publisherKey=mypubkey");
PubNub
pubnub