public async void UnregisterAccount(string address) { int count; var publicKey = NanoUtils.AddressToPublicKeyHexString(address); if (registeredAccounts.TryGetValue(publicKey, out count)) { registeredAccounts[publicKey]--; } else { registeredAccounts.Remove(publicKey); if (websocket == null || websocket.State != WebSocketState.Open) { return; } AccountRegisterRequest request = new AccountRegisterRequest(); request.account = address; request.action = "unregister_account"; await websocket.SendText(JsonUtility.ToJson(request)); } }
public async void RegisterAccount(String address) { int count; var publicKey = NanoUtils.AddressToPublicKeyHexString(address); if (registeredAccounts.TryGetValue(publicKey, out count)) { registeredAccounts[publicKey]++; } else { registeredAccounts[publicKey] = 1; if (websocket == null || websocket.State != WebSocketState.Open) { // Don't send if we're not connected. return; } AccountRegisterRequest request = new AccountRegisterRequest(); request.account = address; request.action = "register_account"; await websocket.SendText(JsonUtility.ToJson(request)); } }
// Start is called before the first frame update async void Start() { websocket = new WebSocket(url); websocket.OnOpen += async() => { Debug.Log("Connection open!"); if (isListeningAll) { ListenAll(); } foreach (var registeredAccount in registeredAccounts) { AccountRegisterRequest request = new AccountRegisterRequest { account = NanoUtils.PublicKeyToAddress(registeredAccount.Key), action = "register_account" }; await websocket.SendText(JsonUtility.ToJson(request)); } foreach (var del in openDelegates) { del(false, isReconnection); } }; websocket.OnError += (e) => { foreach (var del in openDelegates) { del(true, isReconnection); } Debug.Log("Error! " + e); }; websocket.OnClose += (e) => { Debug.Log("Connection closed!"); }; websocket.OnMessage += (bytes) => { var json = System.Text.Encoding.UTF8.GetString(bytes); // Confirmation var websocketConfirmationResponseData = JsonUtility.FromJson <WebsocketConfirmationResponseData>(json); if (websocketConfirmationResponseData.is_filtered) { foreach (var del in filteredConfirmationDelegates) { del(websocketConfirmationResponseData); } } else { foreach (var del in confirmationDelegates) { del(websocketConfirmationResponseData); } } Debug.Log("Received OnMessage! (" + bytes.Length + " bytes) " + json); }; await websocket.Connect(); }