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); } )); }