var websocketClient = new MessageWebSocketRx();
var subscribeToMessagesReceived = websocketClient.ObserveTextMessagesReceived.Subscribe(
msg =>
{
Debug.WriteLine($"Reply from test server: {msg}");
});
var cts = new CancellationTokenSource();
cts.Token.Register(() =>
{
Debug.Write("Aborted");
subscribeToMessagesReceived.Dispose();
});
await websocketClient.ConnectAsync(new Uri("ws://localhost:8001/echo"), cts);
await websocketClient.SendTextAsync("hello");
Created
October 11, 2016 16:04
-
-
Save edewit/06846282021f1315a4cc7dfbb1414841 to your computer and use it in GitHub Desktop.
Author
edewit
commented
Oct 12, 2016
WebsocketClientLite.PCL
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using FHSDK;
using FHSDK.FHHttpClient;
using WebsocketClientLite.PCL;
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
namespace fh_csharp_window_10_blank_app
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
InitializeComponent();
}
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
try
{
await FHClient.Init();
Label.Text = "Yay, this app is ready to go!";
//NOTE: other FH methods can only be called after FHClient.init succeeds
var websocketClient = new MessageWebSocketRx();
var subscribeToMessagesReceived = websocketClient.ObserveTextMessagesReceived.Subscribe(
msg =>
{
Debug.WriteLine($"Reply from test server: {msg}");
Label.Text = msg;
});
var cts = new CancellationTokenSource();
cts.Token.Register(() =>
{
Debug.Write("Aborted");
subscribeToMessagesReceived.Dispose();
});
await websocketClient.ConnectAsync(new Uri("wss://ws-ckrych.rhcloud.com:8443/"), cts, new List<string> {"toto"});
await websocketClient.SendTextAsync("hello");
//var client = new ClientWebSocket();
//await client.ConnectAsync(new Uri("ws://localhost:8001/echo"), CancellationToken.None);
//var buffer = new byte[1024];
//var recieve = client.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
//var data = new ArraySegment<byte>(new UTF8Encoding().GetBytes("hello"));
//var send = client.SendAsync(data, WebSocketMessageType.Text, true, CancellationToken.None);
//await Task.WhenAll(recieve, send);
//Label.Text = Encoding.ASCII.GetString(buffer).TrimEnd('\0');
}
catch (FHException)
{
Label.Text = "Oops, an error occurred while processing FHClient.init";
}
}
}
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment