This guide will walk you through the necessary steps to get started with SendingNetwork requests using the SDK.
Prerequisites
Before you begin, please ensure that you have the following prerequisites:
Installation
To install the SDK, you can use either NuGet package manage:
Copy dotnet add package SDN.Sdk
Use the SDK in your app
1. Create
Use SDNClientFactory
to create an instance of SDNClient
.
Copy var factory = new SDNClientFactory ();
ISDNClient client = factory . Create ();
2.Login
Currently, SDNClient
supports only wallet account login.
Copy // pre-login
var preLoginResponse = await client . PreLoginAsync ( new Uri (nodeUrl) , walletAddress);
// sign message (or prompt user to sign with a wallet app)
var signer = new EthereumMessageSigner ();
var signature = signer . EncodeUTF8AndSign ( preLoginResponse . Message , new EthECKey (privateKey));
// login did
var loginResponse = await client . LoginAsync ( preLoginResponse . Did , preLoginResponse . RandomServer , preLoginResponse . Updated , preLoginResponse . Message , signature);
userId = loginResponse . UserId ;
accessToken = loginResponse . AccessToken ;
// set client credential
client . SetCredential ( new Uri (nodeUrl) , loginResponse . UserId , loginResponse . AccessToken );
3. Start listening for incoming events
To listen for the incoming room events you need to subscribe to OnSDNRoomEventsReceived
.
Copy // add event listener
client . OnSDNRoomEventsReceived += (sender , eventArgs) =>
{
foreach ( var roomEvent in eventArgs . SDNRoomEvents )
{
if (roomEvent is TextMessageEvent textMessageEvent)
{
Console . WriteLine ( $"RoomId: { textMessageEvent . RoomId } received event from { textMessageEvent . SenderUserId }: { textMessageEvent . Message }." );
}
}
};
// start syncing
client . Start ();
4. Call API functions
Copy // create new room
await client . CreateRoomAsync (roomName , null );
// invite user to the room
await client . InviteUserAsync (roomId , userId);
// send room message
await client . SendMessageAsync (roomId , "hello" );
Examples
For a complete example, refer to Sample.cs . You can also clone this repository and run SDN.Sdk.Sample.Console
.