示例#1
0
        private void HandleStringMessage(string messageStr)
        {
            try
            {
                int split1 = messageStr.IndexOf(':');
                if (split1 < 1)
                {
                    Debug.Log("Incorrectly formatted message");
                    return;
                }

                string messageType = messageStr.Substring(0, split1);
                if (messageType == "N")
                {
                    // Server push message
                    int split2 = messageStr.IndexOf(':', split1 + 1);
                    if (split2 < 0)
                    {
                        Debug.Log("Incorrectly formatted message");
                        return;
                    }

                    string notificationType = messageStr.Substring(split1 + 1, split2 - (split1 + 1));
                    string notificationJson = messageStr.Substring(split2 + 1);

                    SV.OnServerNotification(notificationType, notificationJson);
                }
                else if (messageType == "E" || messageType == "R")
                {
                    // Reply
                    int split2 = messageStr.IndexOf(':', split1 + 1);
                    if (split2 < 0)
                    {
                        Debug.Log("Incorrectly formatted message");
                        return;
                    }

                    string messageNum = messageStr.Substring(split1 + 1, split2 - (split1 + 1));

                    string messageJson = messageStr.Substring(split2 + 1);

                    bool isError = false;
                    if (messageType == "E")
                    {
                        isError = true;
                    }

                    MessageReplyClosure callback = ReplyCallbacks[messageNum];
                    ReplyCallbacks.Remove(messageNum);

                    callback(isError, messageJson);
                }
            }
            catch (Exception exc)
            {
                // Error handling message
                Debug.Log("Error handling message: " + exc.ToString());
            }
        }
        private void GetNotifications(ServervilleClient sv)
        {
            string url = sv.ServerURL + "/notifications";

            StartCoroutine(PostJSON(sv, url, "{}", typeof(PendingNotificationList), sv.SessionId,
                                    delegate(object reply)
            {
                PendingNotificationList notifications = (PendingNotificationList)reply;
                if (notifications.notifications == null)
                {
                    return;
                }

                foreach (PendingNotification note in notifications.notifications)
                {
                    sv.OnServerNotification(note.notification_type, note.body);
                }
            },
                                    delegate(ErrorReply err)
            {
                Debug.LogError("Error getting notifications" + err.errorMessage);
            }
                                    ));
        }