Esempio n. 1
0
 // SUMMARY: Send model to server
 public void SendModel(SocketDistributionModel model)
 {
     try
     {
         byte[] data = SocketDistributionManager.GetBytesFromObj(model);
         ClientSocket.BeginSend(data, 0, data.Length, SocketFlags.None, new AsyncCallback(SendCallback), ClientSocket);
     }
     catch (Exception e) { }
 }
Esempio n. 2
0
        // SUMMARY: Send model to client
        public void SendModel(SocketDistributionModel model)
        {
            if (ClientSockets.Count == 0)
            {
                return;
            }

            lock (this.LockObj)
            {
                foreach (SocketObject socket in this.ClientSockets)
                {
                    try
                    {
                        byte[] data = SocketDistributionManager.GetBytesFromObj(model);
                        socket.Socket.BeginSend(data, 0, data.Length, SocketFlags.None, new AsyncCallback(SendCallback), socket);
                    }
                    catch (Exception e) { }
                }
            }
        }
Esempio n. 3
0
        // SUMMARY: On receive message from client
        protected virtual void ReceiveCallback(IAsyncResult AR)
        {
            Socket socket = (Socket)AR.AsyncState;

            try
            {
                int    received = socket.EndReceive(AR);
                byte[] dataBuf  = new byte[received];
                Array.Copy(_buffer, dataBuf, received);

                SocketDistributionModel modelReceived = SocketDistributionManager.ConvertToModel(dataBuf);

                if (modelReceived != null)
                {
                    this.OnReceive(modelReceived, socket);
                }

                socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
            }
            catch (Exception e)
            {
                OnSocketFatalDisconection(e, socket);
            }
        }
        protected async Task Send(string uid, SocketDistributionModel model)
        {
            if (_sockets.ContainsKey(uid))
            {
                return;
            }
            var socket = this[uid];

            byte[] data = model.DataType == SocketDistributionModelDataType.JSON ? model.Data : SocketDistributionManager.GetBytesFromObj(model);
            if (socket.State == WebSocketState.Open)
            {
                await this[uid]?.SendAsync(data, model.WebSocketMessageType, true, default(CancellationToken));
            }
        }
 // Sending data
 protected async Task SendToAll(SocketDistributionModel model)
 {
     byte[] data = model.DataType == SocketDistributionModelDataType.JSON ? model.Data : SocketDistributionManager.GetBytesFromObj(model);
     foreach (var socket in _sockets)
     {
         if (socket.Value.State == WebSocketState.Open)
         {
             await socket.Value.SendAsync(new ArraySegment <byte>(data), model.WebSocketMessageType, true, default(CancellationToken));
         }
     }
 }
Esempio n. 6
0
 public Task Send(SocketDistributionModel model)
 {
     byte[] data = SocketDistributionManager.GetBytesFromObj(model);
     this.socket.Send(data);
     return(Task.FromResult(0));
 }