using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WebSocketSharp.Server; using TrackerBridge; namespace GazeWebSocketServer { class GazeServer { private WebSocketServer wssv; public Boolean isRunning = false; public GazeServer(Int32 port, String endpoint) { wssv = new WebSocketServer(port); wssv.Log.Level = WebSocketSharp.LogLevel.Trace; wssv.AddWebSocketService(endpoint, () => new GazeCoordinateBehavior()); } public void Start() { wssv.Start(); isRunning = true; } public void Publish(GazeData gazeData) { WebSocketServiceManager wssm = wssv.WebSocketServices; foreach(WebSocketServiceHost serviceHost in wssm.Hosts) { if (serviceHost.Type == typeof(GazeCoordinateBehavior)) { serviceHost.Sessions?.Broadcast(gazeData.ToString()); } } } } }