public BackgroundMulticastServer(SocketActivityInformation socketInformation, IBackgroundTaskInstance taskInstance) { socket = socketInformation.DatagramSocket; information = ServerInformation.Deserialize(socketInformation.Context.Data); deferral = taskInstance.GetDeferral(); socket.MessageReceived += OnMessageReceived; }
//--------------------------------------------------------Set-, Get- Methods:---------------------------------------------------------\\ #region --Set-, Get- Methods-- #endregion //--------------------------------------------------------Misc Methods:---------------------------------------------------------------\\ #region --Misc Methods (Public)-- public async void Run(IBackgroundTaskInstance taskInstance) { Logger.Debug("BackgroundSocketHandler Run():" + (++count)); deferral = taskInstance.GetDeferral(); if (taskInstance.TriggerDetails is SocketActivityTriggerDetails) { SocketActivityTriggerDetails socketActivityDetails = taskInstance.TriggerDetails as SocketActivityTriggerDetails; SocketActivityInformation socketInfo = socketActivityDetails.SocketInformation; StreamSocket socket; try { showToast(socketInfo.Id + " " + socketInfo.ToString()); } catch (Exception e) { showToast(e.Message); } switch (socketActivityDetails.Reason) { case SocketActivityTriggerReason.None: break; // Somebody send something: case SocketActivityTriggerReason.SocketActivity: socket = socketInfo.StreamSocket; await readFromSocket(socket); socket.TransferOwnership(socketActivityDetails.SocketInformation.Id); break; case SocketActivityTriggerReason.ConnectionAccepted: break; case SocketActivityTriggerReason.KeepAliveTimerExpired: socket = socketInfo.StreamSocket; await sendKeepAliveAsync(socket); socket.TransferOwnership(socketActivityDetails.SocketInformation.Id); break; case SocketActivityTriggerReason.SocketClosed: break; default: break; } } deferral.Complete(); }