Ejemplo n.º 1
0
        public void Send(byte[] data, Instance address = null, SocketMessageType type = SocketMessageType.Data)
        {
            var buffer = EndPointMessage.Write(new EndPointMessage()
            {
                SenderName     = instance.Id.ToString(),
                SenderEndPoint = endPoint,
                Type           = type,
                Data           = data
            });

            if (type == SocketMessageType.Login)
            {
                Instance.DBTable.Load();
            }

            foreach (Instance item in Instance.DBTable)
            {
                if (address == null || item == address)
                {
                    if (item.Active.Value && item.EndPoint != null && !item.EndPoint.Equals(endPoint) && !IPAddress.Loopback.Equals(item.EndPoint.Address))
                    {
                        Send(buffer, item.EndPoint);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public JsonSocketMessage(Encoding encoding, SocketMessageType messageType)
        {
            Encoding    = encoding;
            MessageType = messageType;

            _eof = Encoding.GetBytes("<EOF>");
        }
Ejemplo n.º 3
0
 protected MessageWebSocketConnection(string uri,
                                      IWampBinding <TMessage> binding, SocketMessageType messageType)
 {
     mUri               = uri;
     mBinding           = binding;
     mSocketMessageType = messageType;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 输出消息
 /// </summary>
 /// <param name="o"></param>
 /// <param name="type"></param>
 /// <param name="message"></param>
 protected void LogOutEvent(Object sender, SocketMessageType type, string message)
 {
     if (MessageOut != null)
     {
         MessageOut.BeginInvoke(sender, new LogOutEventArgs(type, message), new AsyncCallback(CallBackEvent), MessageOut);
     }
 }
Ejemplo n.º 5
0
        /// <summary>Parses raw message text from stream.</summary>
        /// <param name="rawMessage">Message text.</param>
        /// <returns>Parsed message</returns>
        public static SocketMessage Parse(string rawMessage)
        {
            if (rawMessage == null)
            {
                throw new ArgumentNullException(nameof(rawMessage));
            }
            if (string.IsNullOrWhiteSpace(rawMessage))
            {
                throw new ArgumentException("Raw message cannot be empty", nameof(rawMessage));
            }

            // get msg type
            SocketMessageType msgType = ParseMessageType(rawMessage, out int parserIndex);
            // get payload
            JToken payload = ParsePayload(rawMessage, out int payloadIndex);
            // get binary count
            int binaryCount = ParseBinaryCount(rawMessage, ref parserIndex, payloadIndex);
            // get message id
            uint?id = ParseMessageID(rawMessage, ref parserIndex, payloadIndex);

            // return results
            SocketMessage result = new SocketMessage(msgType, id, payload, binaryCount);

            result._rawMessage = rawMessage;
            return(result);
        }
Ejemplo n.º 6
0
 public SocketMessage(int connectionID, SocketMessageType messageType, byte[] bytes, int taskID)
 {
     ConnectionID = connectionID;
     MessageType  = messageType;
     Bytes        = bytes;
     TaskID       = taskID;
 }
Ejemplo n.º 7
0
 /// <summary>Creates a new Socket.IO protocol message.</summary>
 /// <param name="type">Type of SocketIO message.</param>
 /// <param name="id">ID of the message in case of events.</param>
 /// <param name="payload">Raw JSON payload.</param>
 /// <param name="binaryCount">Count of binary messages that will be sent after this message.</param>
 public SocketMessage(SocketMessageType type, uint?id, JToken payload, int binaryCount = 0)
 {
     this.Type                = type;
     this.ID                  = id;
     this.Payload             = payload;
     this.BinaryMessagesCount = binaryCount;
 }
Ejemplo n.º 8
0
        public static string Process(SocketMessageType msgType, object data)
        {
            //ISocketConverter converter = GetConverter(msgType);
            string message = JsonConvert.SerializeObject(data);

            return(Process(msgType, message));
        }
Ejemplo n.º 9
0
 public SocketMessage(string connectionId, SocketMessageType messageType, byte[] data, int sessionId)
 {
     ConnectionId = connectionId;
     MessageType  = messageType;
     Data         = new Buffer(data, 0, data.Length);
     SessionId    = sessionId;
 }
Ejemplo n.º 10
0
 public SocketMessage(string connectionId, SocketMessageType messageType, Buffer data, int sessionId)
 {
     ConnectionId = connectionId;
     MessageType  = messageType;
     Data         = data;
     SessionId    = sessionId;
 }
Ejemplo n.º 11
0
        public virtual Task Send(ArraySegment <byte> data,
                                 SocketMessageType messageType,
                                 bool EndOfMessage)
        {
            var bIsHighPrority = true; // puts it at the begining of the Q

            return(makeSendTask(data, messageType, EndOfMessage, bIsHighPrority));
        }
Ejemplo n.º 12
0
        public virtual Task Post(ArraySegment <byte> data,
                                 SocketMessageType messageType,
                                 bool EndOfMessage)
        {
            var bIsHighPrority = false; // puts it at the end of the Q

            return(makeSendTask(data, messageType, EndOfMessage, bIsHighPrority));
        }
Ejemplo n.º 13
0
 public static SocketMessage Create(SocketMessageType SocketMessageType, IDto dto, string memberName, int paramsCount, object value)
 {
     return(new SocketMessage(value)
     {
         MessageType = SocketMessageType,
         DtoGuid = dto?.DtoGuid ?? Guid.Empty,
         MemberName = memberName,
         ParametersCount = paramsCount
     });
 }
Ejemplo n.º 14
0
        public virtual Task PostToAll(byte[] buffer, SocketMessageType messageType)
        {
            var postAllTasks = new List <Task>();

            foreach (var session in m_sessions.Values)
            {
                postAllTasks.Add(Task.Factory.StartNew(() => { session.Post(buffer, messageType); }));
            }

            return(Task.WhenAll(postAllTasks));
        }
Ejemplo n.º 15
0
        protected virtual Task makeSendTask(ArraySegment <byte> data,
                                            SocketMessageType messageType,
                                            bool EndOfMessage,
                                            bool isHighPriority)
        {
            var lt = new LeveledTask(() => m_SendAsync(data, (int)messageType, EndOfMessage, m_root_factory_working_token).Wait());

            lt.QueueId        = m_SessionId;
            lt.IsHighPriority = isHighPriority;
            lt.Start(m_Scheduler);
            return(lt);
        }
Ejemplo n.º 16
0
        private static ISocketConverter GetConverter(SocketMessageType msgType)
        {
            ISocketConverter converter = null;

            switch (msgType)
            {
            case SocketMessageType.Message:
                converter = new MessageConverter();
                break;
            }
            if (converter == null)
            {
                throw new UnkonwMessageTypeException();
            }
            return(converter);
        }
Ejemplo n.º 17
0
        public void Send(byte[] data, IInstance address = null, SocketMessageType type = SocketMessageType.Data, bool checkState = false)
        {
            var buffer = EndPointMessage.Write(new EndPointMessage()
            {
                SenderName     = instance.Id.ToString(),
                SenderEndPoint = endPoint,
                Type           = type,
                Data           = data
            });

            if (type == SocketMessageType.Login)
            {
                Instance.DBTable.Load();
            }

            foreach (IInstance item in Instance.DBTable)
            {
                if (CheckAddress(item, address, checkState))
                {
                    Send(buffer, item.EndPoint, item);
                }
            }
        }
Ejemplo n.º 18
0
 public MessageTypeAttribute(SocketMessageType messageType)
 {
     MessageType = messageType;
 }
 public SocketMessageUpdate(SocketMessageType type, object message)
 {
     Type    = type;
     Message = message;
 }
Ejemplo n.º 20
0
 public SocketPortData(SocketMessageType DataType, ClientSocketControl ClientSocketCtrl)
 {
     this._DataType         = DataType;
     this._ClientSocketCtrl = ClientSocketCtrl;
 }
Ejemplo n.º 21
0
        public static string Process(SocketMessageType msgType, string message)
        {
            ISocketConverter converter = GetConverter(msgType);

            return(converter.Process(message));
        }
Ejemplo n.º 22
0
 public LogOutEventArgs(SocketMessageType messclass, string str)
 {
     messClass = messclass;
     mess      = str;
 }
Ejemplo n.º 23
0
 public SocketErrorMessage(int connectionID, SocketMessageType messageType, int errorcode, string message, int taskID = 0)
     : base(connectionID, messageType, null, taskID)
 {
     ErrorCode = errorcode;
     Message   = message;
 }
Ejemplo n.º 24
0
        public virtual Task Post(byte[] data, SocketMessageType messageType)
        {
            var arraySegement = new ArraySegment <byte>(data);

            return(Post(arraySegement, messageType, true));
        }
Ejemplo n.º 25
0
 public JsonSocketMessage(SocketMessageType messageType)
     : this(Encoding.ASCII, messageType)
 {
 }