Example #1
0
    void StartWebSocket()
    {
        Debug.Log("Attempting to Connect");
        ui.AttemptingConnection("Attempting to connect (" + (++connectionAttempts) + ")");
        connecting = true;

        var ws = new WebSocket("ws://localhost:8765");

        ws.EmitOnPing = true;
        ws.OnOpen    += (object sender, EventArgs e) =>
        {
            Debug.Log("Connected to Server");
            socket             = ws;
            socket_connected   = true;
            connecting         = false;
            connectionAttempts = 0;

            lock (messages)
            {
                RubiksMessage m = new RubiksMessage();
                m.messageType = (int)MessageType.Connected;
                messages.Enqueue(m);
            }
        };

        ws.OnError += (object sender, ErrorEventArgs e) =>
        {
            Debug.Log(e.Message);
        };

        ws.OnMessage += (object sender, MessageEventArgs e) =>
        {
            lock (messages)
            {
                RubiksMessage m = JsonUtility.FromJson <RubiksMessage>(e.Data);
                messages.Enqueue(m);
            }
            Debug.Log(e.Data);
        };

        ws.OnClose += (object sender, CloseEventArgs e) =>
        {
            socket_connected = false;
            socket           = null;
            connecting       = false;
            Debug.Log("CLOSE: Code:" + e.Code + ", Reason:" + e.Reason);
        };

        ws.ConnectAsync();
    }
Example #2
0
 private void HandleServerMessage()
 {
     if (messages.Count > 0)
     {
         lock (messages)
         {
             while (messages.Count > 0)
             {
                 RubiksMessage m = messages.Dequeue();
                 if (m.messageType == (int)MessageType.Reset)
                 {
                     Debug.Log("reseting");
                     initialized = false;
                     ui.OnConnected();
                 }
                 else if (m.messageType == (int)MessageType.Initialize)
                 {
                     Debug.Log("New Initialized");
                     SolutionString = m.Data;
                     SolutionArr    = ParseMoves(SolutionString);
                     RCP.ResetView();
                     RCP.RC.RunCustomSequence(SubstringFromList(SolutionArr, true, 0));
                     nextMove = 0;
                     RCP.RefreshPanels();
                     ui.OnInitialized();
                     initialized = true;
                     //Reinitialize the cube
                 }
                 else if (m.messageType == (int)MessageType.Solution)
                 {
                 }
                 else if (m.messageType == (int)MessageType.Connected)
                 {
                     ui.OnConnected();
                     ui.WaitMessage("Waiting for Cube");
                 }
             }
         }
     }
 }