PubNub C# SDK 6.20.1
This page outlines the steps to follow to create a simple Hello, World application with PubNub. This covers the basics of integrating PubNub in your application: setting up a connection to PubNub, and sending and receiving messages.
PubNub account
Sign in or create an account to create an app on the Admin Portal and get the keys to use in your application.
When you create a new app, the first set of keys is generated automatically, but a single app can have as many keysets as you like. We recommend that you create separate keysets for production and test environments.
Download the SDK
Download the SDK from any of the following sources:
Use Nuget
To integrate PubNub into your project using the Nuget package manager:
<!-- For .Net 3.5/4.0/4.5/4.61 -->
https://www.nuget.org/packages/Pubnub/6.20.1
<!-- For Xamarin.Android, Xamarin.iOS and .Net Core/.Net Standard -->
https://www.nuget.org/packages/PubnubPCL/6.20.1
<!--For Universal Windows -->
https://www.nuget.org/packages/PubnubUWP/6.20.1
Get the source code
https://github.com/pubnub/c-sharp
Configure PubNub
In the IDE of your choice, create a new App
class and add the following code. This is the minimum configuration you need to send and receive messages with PubNub.
Make sure to replace myPublishKey and mySubscribeKey with your app's publish and subscribe keys from the Admin Portal.
using PubnubApi;
PNConfiguration pnConfiguration = new PNConfiguration(new UserId("myUniqueUserId"));
pnConfiguration.SubscribeKey = "mySubscribeKey";
pnConfiguration.PublishKey = "myPublishKey";
Pubnub pubnub = new Pubnub(pnConfiguration);
For more information, refer to the Configuration section of the SDK documentation.
Add event listeners
Listeners help your app react to events and messages. You can implement custom app logic to respond to each type of message or event.
Copy the following code to configure your app such that when it receives an event of type PNConnectedCategory
, it calls the Publish()
function.
pubnub.AddListener(new SubscribeCallbackExt(
delegate (Pubnub pnObj, PNMessageResult<object> pubMsg)
{
if (pubMsg != null) {
Debug.WriteLine("In Example, SubscribeCallback received PNMessageResult");
Debug.WriteLine("In Example, SubscribeCallback messsage channel = " + pubMsg.Channel);
Debug.WriteLine("In Example, SubscribeCallback messsage channelGroup = " + pubMsg.Subscription);
Debug.WriteLine("In Example, SubscribeCallback messsage publishTimetoken = " + pubMsg.Timetoken);
Debug.WriteLine("In Example, SubscribeCallback messsage publisher = " + pubMsg.Publisher);
string jsonString = pubMsg.Message.ToString();
Dictionary<string, string> msg = pubnub.JsonPluggableLibrary.DeserializeToObject<Dictionary<string,string>>(jsonString);
Debug.WriteLine("msg: " + msg["msg"]);
}
},
delegate (Pubnub pnObj, PNPresenceEventResult presenceEvnt)
show all 38 linesFor more information, refer to the Listeners section of the SDK documentation.
Publish and subscribe
To receive messages sent to a particular channel, you subscribe to it. When you publish a message to a channel, PubNub delivers that message to everyone subscribed to that channel.
In this app, publishing a message is triggered when the status listener you created in the previous step receives the PNConnectedCategory
event.
To subscribe, you send a subscribe()
call. It is best to define the message before you introduce the listeners and send the subscribe call, so make sure to place the relevant code in the appropriate places within the App
class.
Dictionary<string, string> message = new Dictionary<string, string>();
message.Add("msg", "Hello world!");
pubnub.Subscribe<string>()
.Channels(new string[]{
"my_channel"
}).Execute();
For more information, refer to the Publish and Subscribe section of the SDK documentation, and to Publishing a Message.
Putting it all together
Your App
file should now look similar to the one below:
using PubnubApi;
PNConfiguration pnConfiguration = new PNConfiguration(new UserId("myUniqueUserId"));
pnConfiguration.SubscribeKey = "mySubscribeKey";
pnConfiguration.PublishKey = "myPublishKey";
Dictionary<string, string> message = new Dictionary<string, string>();
message.Add("msg", "Hello world");
Pubnub pubnub = new Pubnub(pnConfiguration);
pubnub.AddListener(new SubscribeCallbackExt(
delegate (Pubnub pnObj, PNMessageResult<object> pubMsg)
{
if (pubMsg != null) {
show all 53 linesNow, run your app to see if you did everything correctly. You should see "Hello world" printed in the console.
Congratulations! You've just subscribed to a channel and sent your first message.
Walkthrough
Instead of focusing on the order in which you wrote the code, let's focus on the order in which it runs. The app you just created does a few things:
- configures a PubNub connection
- adds the
status
,message
, andpresence
event listeners - subscribes to a channel
- publishes a message