1
0
Fork 0

Add Send & Broadcast methods to Websocket handling logic

This commit is contained in:
Starbeamrainbowlabs 2017-01-22 20:56:31 +00:00
parent 22373b82c7
commit 96c6c8e565
2 changed files with 31 additions and 3 deletions

View File

@ -1,6 +1,9 @@
using System; using System;
using IotWeb.Common.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Text;
using IotWeb.Common.Http;
namespace Nibriboard.Client namespace Nibriboard.Client
{ {
public class NibriClient public class NibriClient
@ -30,6 +33,11 @@ namespace Nibriboard.Client
} }
public void Send(string message)
{
client.Send(Encoding.UTF8.GetBytes(message));
}
private async Task onMessage(string frame) private async Task onMessage(string frame)
{ {

View File

@ -8,9 +8,17 @@ namespace Nibriboard.Client
{ {
public class NibriClientManager : IWebSocketRequestHandler public class NibriClientManager : IWebSocketRequestHandler
{ {
ClientSettings clientSettings; private ClientSettings clientSettings;
private List<NibriClient> clients = new List<NibriClient>();
List<NibriClient> clients = new List<NibriClient>(); /// <summary>
/// The number of clients currently connected to this Nibriboard.
/// </summary>
public int ClientCount {
get {
return clients.Count;
}
}
public NibriClientManager(ClientSettings inClientSettings) public NibriClientManager(ClientSettings inClientSettings)
{ {
@ -39,5 +47,17 @@ namespace Nibriboard.Client
NibriClient client = new NibriClient(this, newSocket); NibriClient client = new NibriClient(this, newSocket);
clients.Add(client); clients.Add(client);
} }
public void Broadcast(NibriClient sendingClient, string message)
{
foreach(NibriClient client in clients)
{
// Don't send the message to the sender
if (client == sendingClient)
continue;
client.Send(message);
}
}
} }
} }