예제 #1
0
        static void OnReceiveIMMessage(string content, string jsonArcResult, IntPtr userData)
        {
            if (string.IsNullOrEmpty(content) || OnReceiveMessageHandler == null)
            {
                return;
            }
            System.Diagnostics.Debug.WriteLine("receive message:" + content);
            var obj = Newtonsoft.Json.Linq.JObject.Parse(content);
            NIMReceivedMessage msg = new NIMReceivedMessage();
            var resCode            = obj.SelectToken(NIMReceivedMessage.ResCodePath);
            var feature            = obj.SelectToken(NIMReceivedMessage.FeaturePath);
            var token = obj.SelectToken(NIMReceivedMessage.MessageContentPath);

            if (resCode != null)
            {
                msg.ResponseCode = resCode.ToObject <ResponseCode>();
            }
            if (feature != null)
            {
                msg.Feature = feature.ToObject <NIMMessageFeature>();
            }

            if (token != null && token.Type == Newtonsoft.Json.Linq.JTokenType.Object)
            {
                var contentObj = token.ToObject <Newtonsoft.Json.Linq.JObject>();
                var realMsg    = MessageFactory.CreateMessage(contentObj);
                msg.MessageContent = realMsg;
                OnReceiveMessageHandler(null, new NIMReceiveMessageEventArgs(msg));
            }
        }
예제 #2
0
        static void OnReceiveIMMessage(string content, string jsonAckResult, IntPtr userData)
        {
            if (OnReceiveMessageHandler == null)
            {
                return;
            }
            NIMReceivedMessage msg = NIMReceivedMessage.Deserialize(content);

            OnReceiveMessageHandler(null, new NIMReceiveMessageEventArgs(msg));
        }
예제 #3
0
        static void OnReceiveIMMessage(string content, string jsonAckResult, IntPtr userData)
        {
            NIMReceivedMessage msg = NIMReceivedMessage.Deserialize(content);

#if UNITY_ANDROID && !UNITY_EDITOR
            if (_sendLocalPushNotificationCallback != null)
            {
                _sendLocalPushNotificationCallback(msg);
            }
#endif
            if (OnReceiveMessageHandler != null)
            {
                OnReceiveMessageHandler(null, new NIMReceiveMessageEventArgs(msg));
            }
        }
예제 #4
0
        static void OnReceivedBatchMessagesCallback(string content, string jsonArcResult, IntPtr userData)
        {
            List <NIMReceivedMessage> msgs = null;

            if (!string.IsNullOrEmpty(content))
            {
                var list = NimUtility.Json.JsonParser.Deserialize <List <Newtonsoft.Json.Linq.JObject> >(content);
                if (list != null)
                {
                    msgs = new List <NIMReceivedMessage>();
                    foreach (var obj in list)
                    {
                        NIMReceivedMessage msg = NIMReceivedMessage.Deserialize(obj);
                        msgs.Add(msg);
                    }
                }
            }
            NimUtility.DelegateConverter.Invoke <ReceiveBatchMesaagesDelegate>(userData, msgs);
        }
예제 #5
0
 public NIMReceiveMessageEventArgs(NIMReceivedMessage msg)
 {
     Message = msg;
 }