/** * Running when instance was created * @void */ void Start() { if (WClient.IsConnected() == true) { OnConnected(); } else { OnDisconnected(); } WClient.On(WClient.CONNECTED, OnConnected); WClient.On(WClient.CONNECTION_LOST, OnDisconnected); }
IEnumerator WebsocketClient() { // Instantiate a websocket this.gameObject.AddComponent <WClient>(); // Set up listeners WClient.On(WClient.EventType.CONNECTED_TO_WS.ToString(), (string arg0) => { WClient.Emit(WClient.EventType.KEY.ToString(), APIKey); }); WClient.On(WClient.EventType.CONNECTION_LOST.ToString(), (string arg0) => { }); WClient.On(WClient.EventType.ADD_ENTRY.ToString(), (string message) => { // Parse new entry Entry entry = ParseEntry(JSON.Parse(message)); // Download and instantiate content DownloadEntryAssets(entry, serverURL); }); WClient.On(WClient.EventType.DELETE_ENTRY.ToString(), (string message) => { // Parse data string[] messageArray = message.Split('|'); string eventType = messageArray[0]; string entryID = messageArray[1]; GameObject gameObjectToDestroy = null; // Find entry and destroy content foreach (CustomBehaviour cb in FindObjectsOfType <CustomBehaviour>()) { if (cb.entry.getId().Equals(entryID)) { // Remove entry dbObject.getEntries().Remove(cb.entry); // Destroy game object gameObjectToDestroy = cb.gameObject; break; } } if (gameObjectToDestroy != null) { Destroy(gameObjectToDestroy); } }); WClient.On(WClient.EventType.DATA_POST_ALL.ToString(), (string message) => { // Parse data string[] messageArray = message.Split('|'); string eventType = messageArray[0]; string dataKey = messageArray[1]; string dataValue = messageArray[2]; // Find entry foreach (Entry entry in dbObject.getEntries()) { // Update or add key entry.removeAdditionalData(dataKey); entry.addAdditionalData(dataKey, dataValue); } }); WClient.On(WClient.EventType.DATA_POST_ENTRY.ToString(), (string message) => { // Parse data string[] messageArray = message.Split('|'); string eventType = messageArray[0]; string entryID = messageArray[1]; string dataKey = messageArray[2]; string dataValue = messageArray[3]; // Find entry foreach (Entry entry in dbObject.getEntries()) { if (entry.getId().Equals(entryID)) { // Update key entry.removeAdditionalData(dataKey); entry.addAdditionalData(dataKey, dataValue); break; } } }); WClient.On(WClient.EventType.DATA_REMOVE_ALL.ToString(), (string message) => { // Parse data string[] messageArray = message.Split('|'); string eventType = messageArray[0]; string dataKey = messageArray[1]; // Find entry foreach (Entry entry in dbObject.getEntries()) { // Remove key entry.removeAdditionalData(dataKey); } }); WClient.On(WClient.EventType.DATA_REMOVE_ENTRY.ToString(), (string message) => { // Parse data string[] messageArray = message.Split('|'); string eventType = messageArray[0]; string entryID = messageArray[1]; string dataKey = messageArray[2]; // Find entry foreach (Entry entry in dbObject.getEntries()) { if (entry.getId().Equals(entryID)) { // Remove key entry.removeAdditionalData(dataKey); break; } } }); WClient.On(WClient.EventType.SESSION_INFO.ToString(), (string session) => { Debug.Log("Session is: " + session); }); yield return(null); }