// Start is called before the first frame update async void Start() { webSocket = new WebSocket("wss://1kvhz41590.execute-api.us-west-1.amazonaws.com/production"); webSocket.OnOpen += () => { Debug.Log("Connected!!!"); InvokeRepeating("SendWebSocketPing", 60f, 60f * pingFrequency); GetForeignData(); }; webSocket.OnMessage += (bytes) => { Debug.Log($"Message: {System.Text.Encoding.UTF8.GetString(bytes)}"); }; webSocket.OnMessage += (bytes) => { string bytesData = System.Text.Encoding.UTF8.GetString(bytes); WebSocketMessage message = JsonUtility.FromJson <WebSocketMessage>(bytesData); if (message.type == "foreignWindowData") { CompleteDataResult foreignWindowData = JsonUtility.FromJson <CompleteDataResult>(bytesData); int index = 0; foreach (CompleteDataResult.ForeignWindowData foreignWindow in foreignWindowData.data) { Debug.Log($"Foreign Apartment ID: {foreignWindow.apartmentId}"); foreignWindows[index].AddData(foreignWindow); foreignWindowsMap.Add(foreignWindow.apartmentId, foreignWindows[index]); index++; } } else if (message.type == "addStickyNote") { QuestDebug.Instance.Log("Getting new sticky info"); AddStickyNoteResult stickyNoteData = JsonUtility.FromJson <AddStickyNoteResult>(bytesData); if (foreignWindowsMap.ContainsKey(stickyNoteData.apartmentId)) { foreignWindowsMap[stickyNoteData.apartmentId].AddStickyNoteFromData(stickyNoteData.data); } } else if (message.type == "removeStickyNote") { QuestDebug.Instance.Log("Removing foreign sticky note"); RemoveStickyNoteResult removeStickyNoteData = JsonUtility.FromJson <RemoveStickyNoteResult>(bytesData); if (foreignWindowsMap.ContainsKey(removeStickyNoteData.apartmentId)) { foreignWindowsMap[removeStickyNoteData.apartmentId].RemoveStickyNoteFromData(removeStickyNoteData.stickyNoteId); } } else if (message.type == "localWindowData") { Debug.Log("Got local window data"); LocalWindowResult localWindowResult = JsonUtility.FromJson <LocalWindowResult>(bytesData); Debug.Log(localWindowResult.data); if (localWindowResult.data != null) { localWindow.AddData(localWindowResult.data); } } else if (message.type == "setOnlineStatus") { SetOnlineResult setOnlineResult = JsonUtility.FromJson <SetOnlineResult>(bytesData); Debug.Log($"Setting online to: {setOnlineResult.onlineStatus} of apartment {setOnlineResult.apartmentId}"); if (foreignWindowsMap.ContainsKey(setOnlineResult.apartmentId)) { foreignWindowsMap[setOnlineResult.apartmentId].SetOnlineStatus(setOnlineResult.onlineStatus); } } }; await webSocket.Connect(); }