-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
34 lines (27 loc) · 1.12 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using Sinch.Encoding;
using System.Text.Json;
using System.Text.Json.Serialization;
using Header = System.Collections.Generic.KeyValuePair<string, string>;
var message = new SignalMessage
{
Headers = new Dictionary<string, string>(new Header[] {
new Header("name-1", "value-1"),
new Header("name-2", "value-2"),
new Header("name-3", "value-3"),
}),
Payload = new byte[] { 0b00100011, 0b00011010, 0b00100011 }
};
Console.WriteLine($"This is object before encoding: ${JsonSerializer.Serialize(message, new JsonSerializerOptions { WriteIndented = true })}\n");
var byteEncoder = new ByteBufferBuilder();
var encoder = new SignalMessageCodec(byteEncoder);
try
{
var encodedMessage = encoder.Encode(message);
Console.WriteLine($"This is encoded stream: ${Convert.ToHexString(encodedMessage)}\n");
var decodedMessage = encoder.Decode(encodedMessage);
Console.WriteLine($"This is object after decoding: ${JsonSerializer.Serialize(decodedMessage, new JsonSerializerOptions { WriteIndented = true })}\n");
}
catch (Exception ex)
{
Console.WriteLine($"Something happened: {ex.Message}");
}