public static bool Start(Action fnConexion, Action fnEnd, Dictionary <string, Action <object> > handlers)
    {
        if (handlers.Count == 0)
        {
            return(false);
        }

        Debug.Log("Comienza initSocketio()");
        try
        {
            IO.Options opciones = new IO.Options();
            opciones.ExtraHeaders.Add("jwt", UserDataScript.getInfo("token"));
            opciones.ExtraHeaders.Add("operacion", op);

            foreach (KeyValuePair <string, string> entry in args)
            {
                opciones.ExtraHeaders.Add(entry.Key, entry.Value);
            }

            socket = IO.Socket(ENDPOINT, opciones);

            foreach (KeyValuePair <string, Action <object> > entry in handlers)
            {
                socket.On(entry.Key, entry.Value);
            }

            socket.On(QSocket.EVENT_DISCONNECT, (reason) => { Debug.Log("Disconnected: " + reason + " \n" + Environment.StackTrace); PlayersDataScript.eliminarPartida();  fnEnd(); });
            socket.On(QSocket.EVENT_RECONNECT, () => { Debug.Log("Reconnected"); });
            socket.On(QSocket.EVENT_CONNECT, () => { Debug.Log("Connected"); fnConexion(); });
        }catch (Exception e) {
            Debug.Log("Exception: " + e);
        }
        return(true);
    }
예제 #2
0
        /// <summary>
        /// Subscribe to the events emitted by the block chain.
        /// </summary>
        /// <param name="regex">Regular Expression to define which events to subscribe to.</param>
        /// <param name="callback">Callback function to define the action on the received event.</param>
        public void subscribeEvents(Action <object> callback)
        {
            int retryCount = 0;

            string json = "{\"token\" : \"" + apiToken + "\"}";

            var opts = new IO.Options {
                Path = "/subscribe"
            };

            socket = IO.Socket("https://api.staging.xooa.io", opts);

            Console.WriteLine(socket.GetHashCode());

            socket.On(Socket.EVENT_CONNECT, (data) => {
                Console.WriteLine("Connected");
                Console.WriteLine(data);

                socket.Emit("authenticate", JObject.Parse(json));
            });

            socket.On("authenticated", (data) => {
                Console.WriteLine("Authorized");
            });

            socket.On(Socket.EVENT_CONNECT_ERROR, (data) => {
                Console.WriteLine("Connection Error");
                Console.WriteLine(data);

                socket.Emit(Socket.EVENT_RECONNECT);
            });

            socket.On(Socket.EVENT_RECONNECT, () => {
                if (retryCount <= retries)
                {
                    Console.WriteLine("---Reconnecting---");
                    retryCount++;
                    socket.Connect();
                }
                else
                {
                    Console.WriteLine("Exceeded maximum number of retries allowed");
                }
            });

            socket.On(Socket.EVENT_MESSAGE, (data) => {
                Console.WriteLine("Message");
                Console.WriteLine(data);
            });

            socket.On("event", (data) =>
            {
                Console.WriteLine("event");
                Console.WriteLine(data);
                JObject jsonData = JObject.Parse(data.ToString());

                Console.WriteLine(data);
                callback(jsonData);
            });
        }
    public void Open(string url)
    {
        Debug.Log("SocketIO: connecting to:" + url);
        IO.Options opts = new IO.Options();
        opts.Transports = ImmutableList <string> .Empty.Add("polling");

        Socket socket = IO.Socket(url, opts);

        socket.On(Socket.EVENT_CONNECT, () =>
        {
            Debug.Log("SocketIO: connected!");
            this.socket = socket;
            InitHandlers();
            this.OnConnect();
        });
        socket.On(Socket.EVENT_CONNECT_ERROR, (msg) =>
        {
            Debug.Log("SocketIO: connect error!");
            this.OnConnectError("error:" + msg);
        });
        socket.On(Socket.EVENT_DISCONNECT, () =>
        {
            Debug.Log("SocketIO: disconnected!");
            this.OnDisconnect();
            this.socket = null;
        });
    }
예제 #4
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            this.item = (History)e.Parameter;
            var setting = ApplicationData.Current.LocalSettings;

            var opts = new IO.Options();
            Dictionary <string, string> dictionary = new Dictionary <string, string>();

            dictionary.Add("token", setting.Values["AccessToken"].ToString());
            opts.Query = dictionary;
            socket     = IO.Socket(_URL, opts);
            socket.Connect();

            JObject obj = new JObject();

            obj["userId"]   = item.UserId;
            obj["userName"] = item.UserName;


            socket.On(Socket.EVENT_CONNECT, () =>
            {
                socket.Emit("joinroom", obj);
            });

            socket.On("joinroom", (data) =>
            {
                var s = (JObject)data;
            });
        }
예제 #5
0
        public async Task ConnectAsync(string hostname, int port, Context context)
        {
            _conversationsRecords = await SqlHelper <ConversationsRecords> .CreateAsync();

            _context = context;
            try {
                var options = new IO.Options {
                    ForceNew     = true,
                    Reconnection = true,
                    Secure       = false,
                    //Transports = new string[] { EngineIO.Client.Transports.PollingXHR.TransportName},
                    Query = $"token={Utils.GetDefaults("Token")}&imei={Utils.GetDeviceIdentificator(Application.Context)}"
                };
                Socket = IO.Socket(hostname, options);

                Socket.On(Socket.EventConnect, OnConnect);
                Socket.On(Socket.EventDisconnect, OnDisconnect);
                Socket.On(Socket.EventConnectError, OnConnectError);
                Socket.On(Socket.EventConnectTimeout, OnConnectTimeout);
                //_socket.On(Manager.EventTransport, OnTransport);

                Socket.On("conversation", OnConversation);
                Socket.On("chat request", OnChatRequest);
                Socket.On("chat accepted", OnChatAccepted);
                Socket.On("chat rejected", OnChatRejected);
                Socket.On("Error", OnError);

                Socket.Connect();
                //Client = _socket;
            } catch (Exception e) {
                Log.Error("WSConnectionError: ", e.ToString());
            }
        }
예제 #6
0
        public override async void Connect(string server, string port, string client_name)
        {
            Debug.WriteLine("SympleSignaller:Connect: " + server + " " + port + " " + client_name);

            if (_socket != null)
            {
                string err = "the client socket is not null";
                Messenger.Broadcast(SympleLog.LogError, err);
                throw new Exception(err);
            }

            _myPeerData.user = client_name;
            _myPeerData.name = client_name;

            string fullUrl        = server + ":" + port;
            bool   options_secure = (fullUrl != null && (fullUrl.IndexOf("https") == 0 || fullUrl.IndexOf("wss") == 0));
            Uri    socketUri      = new Uri(fullUrl);

            var ioOptions = new IO.Options();

            ioOptions.Secure   = options_secure;
            ioOptions.Port     = socketUri.Port;
            ioOptions.Hostname = socketUri.Host;
            ioOptions.IgnoreServerCertificateValidation = true;

            _socket = IO.Socket(fullUrl, ioOptions);
            _socket.On(Socket.EVENT_CONNECT, SocketOnConnect);
            _socket.On(Socket.EVENT_ERROR, SocketOnError);
            _socket.On("connecting", SocketOnConnecting);
            _socket.On(Socket.EVENT_RECONNECTING, SocketOnReconnecting);
            _socket.On("connect_failed", SocketOnConnectFailed);
            _socket.On(Socket.EVENT_DISCONNECT, SocketOnDisconnect);

            Debug.WriteLine("SympleSignaller:Connect: finished setting up socket");
        }
예제 #7
0
        public SympleClient(JObject options) : base()
        {
            this.options      = options;
            options["url"]    = options["url"] ?? "http://localhost:4000";
            options["secure"] = (options["url"] != null && (options["url"].ToString().IndexOf("https") == 0 || options["url"].ToString().IndexOf("wss") == 0));
            options["token"]  = null;

            this.peer          = options["peer"] as JObject ?? new JObject();
            this.peer["rooms"] = options["peer"]["rooms"] ?? new JArray();
            this.roster        = new SympleRoster(this);
            this.socket        = null;

            Uri socketUri = new Uri(options["url"].ToString());


            ioOptions          = new IO.Options();
            ioOptions.Secure   = (bool)options["secure"];
            ioOptions.Port     = socketUri.Port;
            ioOptions.Hostname = socketUri.Host;
            ioOptions.IgnoreServerCertificateValidation = true;


            Messenger.Broadcast(SympleLog.LogTrace, "done initing SympleClient, values: ");
            Messenger.Broadcast(SympleLog.LogTrace, "this.peer: " + this.peer.ToString());
        }
예제 #8
0
        private bool EstablishSocketConnection()
        {
            if (!cxToken.IsCancellationRequested)
            {
                var options = new IO.Options()
                {
                    Reconnection = true,
                    AutoConnect  = true,
                    QueryString  = "UrlToken=" + this.socketEndpointOptions.URLToken,
                    Upgrade      = true,
                    ForceNew     = true,
                    Multiplex    = false,
                    Transports   = new List <string> {
                        WebSocket.NAME, Polling.NAME
                    }
                };

                this.mySocket = IO.Socket(new Uri(this.socketEndpointOptions.EndpointURL), options);

                this.mySocket.On(Socket.EVENT_CONNECT, () =>
                {
                    this.isConnected = true;
                    waitHandle.Set();
                });

                this.mySocket.On(Socket.EVENT_CONNECT_ERROR, (data) => { throw new CognigyConnectionException(ConnectionErrorType.ConnectionError, data.ToString()); });
                this.mySocket.On(Socket.EVENT_CONNECT_TIMEOUT, (data) => { Debug.LogError(data); throw new CognigyConnectionException(ConnectionErrorType.ConnectionTimeout, Convert.ToString(data)); });

                this.mySocket.On(Socket.EVENT_ERROR, (data) => { Debug.LogError(data); throw new CognigyAIException(AIErrorType.Error, Convert.ToString(data)); });
                this.mySocket.On(EVENT_EXCEPTION, (data) => { Debug.LogError(data); throw new CognigyAIException(AIErrorType.Exception, Convert.ToString(data)); });

                this.mySocket.On(Socket.EVENT_DISCONNECT, (data) => { Debug.Log("-- [COGNIGY.AI] Socket Client disconnected --"); this.isConnected = false; });

                this.mySocket.On(EVENT_OUTPUT, (data) =>
                {
                    if (OnOutput != null)
                    {
                        JObject response = JObject.FromObject(data);
                        if (response["type"].ToString() == "output")
                        {
                            OnOutput(this, new FlowOutputEventArgs(BuildFlowOutput(response["data"])));
                        }
                    }
                });

                if (CustomWaitHandle.CancelableWaitOne(waitHandle, millisecondsTimeout, cxToken))
                {
                    return(true);
                }
                else //Timeout
                {
                    Disconnect();
                    throw new CognigyConnectionException(ConnectionErrorType.ConnectionTimeout, "No answer from server received");
                }
            }
            else
            {
                throw new CognigyOperationCanceledException();
            }
        }
예제 #9
0
        private void OnConnect()
        {
            ConnectionStatus = "connectAttempt";
            Regex rgx = new Regex("^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$");

            if (!rgx.IsMatch(ServerAddress))
            {
                System.Windows.MessageBox.Show("Wrong Address format", "Error");
                ConnectionStatus = "disconnected";
                return;
            }
            IO.Options op = new IO.Options
            {
                Reconnection = false
            };

            socket = IO.Socket("http://" + ServerAddress + ":" + SERVER_PORT, op);

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                ConnectionStatus = "connecting";
            });
            socket.On(Socket.EVENT_CONNECT_TIMEOUT, () =>
            {
                System.Windows.MessageBox.Show("Connection timeout", "Error");
                ConnectionStatus = "disconnected";
            });
            socket.On(Socket.EVENT_CONNECT_ERROR, () =>
            {
                System.Windows.MessageBox.Show("Connection error", "Error");
                ConnectionStatus = "disconnected";
            });
        }
예제 #10
0
        public static void Main(string[] args)
        {
            string bearer_token = string.Empty;

            var options = new IO.Options
            {
                ForceNew = true,
                Query    = new Dictionary <string, string> {
                    { "access_token", TOKEN }
                }
            };

            var socket = IO.Socket(BASE_URL, options);

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                bearer_token = "Bearer " + socket.Io().EngineSocket.Id + TOKEN;
                OnConnect(bearer_token);
            });

            socket.On(Socket.EVENT_CONNECT_ERROR, (error) =>
            {
                OnConnectError(error);
            });

            Console.ReadKey();
        }
예제 #11
0
        private void Connect()
        {
            var options = new IO.Options()
            {
                IgnoreServerCertificateValidation = true, AutoConnect = true, ForceNew = true
            };

            socket = IO.Socket("https://" + Class1.config.ipa + ":3000", options);

            // 接続時のイベント
            socket.On(Socket.EVENT_CONNECT, async() =>
            {
                // UIとは別スレッドなので Dispatcher を利用する
                await Dispatcher.BeginInvoke(new Action(() =>
                {
                    Class1.config.con = "Connected";
                    Check();
                }));
            });

            // "msg" 受信時
            socket.On("message", async(data) =>
            {
                // UIとは別スレッドなので Dispatcher を利用する
                await Dispatcher.BeginInvoke(new Action(() =>
                {
                    TxtBox2.Text = Convert.ToString(data);
                    Class1.config.cnt++;
                    Check();
                }));
            });
        }
예제 #12
0
    // Need to be called only once, to connect to the server
    // and configure
    public void SetupSocket()
    {
        IO.Options options = new IO.Options();
        options.Timeout = 2;
        socket          = IO.Socket("http://localhost:3000", options);

        socket.On(Socket.EVENT_CONNECT, () => {
            connected   = true;
            Message msg = new Message(ConnectionToServer.name, JsonConvert.SerializeObject(new ConnectionToServer()));
            socket.Emit("userId", JsonConvert.SerializeObject(msg));
        });

        socket.On(Socket.EVENT_CONNECT_ERROR, () => { Debug.Log("Connection Timeout"); });

        socket.On(Connection.name, (data) => {
            string jsonMsg    = data.ToString();
            Message msg       = JsonConvert.DeserializeObject <Message>(jsonMsg);
            Connection handle = JsonConvert.DeserializeObject <Connection>(msg.jsonData);

            connectionEventCallbacks(handle.id, handle.connection);
        });

        socket.On(UpdatePosition.name, UpdatePositionHandle);

        socket.On(Vote.name, VoteHandle);

        socket.On(Fire.name, (data) => {
            string jsonMsg = data.ToString();
            Message msg    = JsonConvert.DeserializeObject <Message>(jsonMsg);
            Fire handle    = JsonConvert.DeserializeObject <Fire>(msg.jsonData);

            fireEventCallbacks(handle.id);
        });
    }
        private void socketIoManager()
        {
            // aqui ficam as configurações que nós definimos no back-end
            // nada de mais, mas sem elas não tem como fazer a conexão
            var option = new IO.Options()
            {
                Path        = "/socket/",
                AutoConnect = true,
            };

            // aqui vc instancia o soket passando as configurações
            // com essa instancia vc consegue escutar as conexões e mandar informacoes
            // aqui vc coloca o endereço da api

            var socket = IO.Socket("http://localhost:0000", option);

            // esse evento só checa se a conexao foi feita
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                Console.WriteLine("Connected");
                System.Diagnostics.Debug.WriteLine("Connected");
            });
            ////////////////////////////////////////////////////////////////////////////////

            // esse evento escuta todas as mensagens mandadas para esse chat
            // com o id da conversa você está participando
            var chatId     = "49c3e4c0-9936-11ea-b8a9-5b7fcb8fc688";
            var mensagemss = new { texto = "", chatId = "" };

            socket.On("leadsOnline", (leads) =>
            {
                Console.WriteLine(leads);
            });

            socket.On("digitando-chat-" + chatId, (leads) =>
            {
                Console.WriteLine(leads);
            });

            socket.On("usuariosOnline", (usuarios) =>
            {
                Console.WriteLine(usuarios);
            });

            // esse é o evento que fica escutando as respostas do chat
            socket.On("chegouMensagem-chat", (mensagem) =>
            {
                // convertendo porcamente só para mostrar o objeto javascript em um objeto c#
                var json = Newtonsoft.Json.JsonConvert.SerializeObject(mensagem);
                var msg  = JsonConvert.DeserializeAnonymousType((string)json, mensagemss);

                // verificando o id do chat
                if (String.Equals(msg.chatId, chatId))
                {
                    // mostrando a mensagem do chat
                    Console.WriteLine(msg.texto);
                }
            });
        }
예제 #14
0
        static void Main(string[] args)
        {
            var options = new IO.Options {
                IgnoreServerCertificateValidation = true, AutoConnect = true, ForceNew = true
            };

            options.Transports = ImmutableList.Create <string>("websocket");

            var socket = IO.Socket("http://127.0.0.1:3030", options);

            socket.On(Socket.EVENT_ERROR, (error) =>
            {
                Console.WriteLine("Generic error {0}", error);
            });

            socket.On(Socket.EVENT_CONNECT_ERROR, (error) =>
            {
                Console.WriteLine("Connect error {0}", error);
            });

            socket.On(Socket.EVENT_CONNECT, (data) =>
            {
                Console.WriteLine("Connected {0}", data);
            });

            socket.On(Socket.EVENT_MESSAGE, (message) =>
            {
                Console.WriteLine("Message arrived {0}", message);
            });

            socket.On("channel created", (message) =>
            {
                Console.WriteLine("Message arrived for create new {0}", message);
            });

            socket.On("channel updated", (message) =>
            {
                Console.WriteLine("Message arrived for updated data {0}", message);
            });

            // credentials
            var credentials = new JObject();

            credentials["username"] = "******";
            credentials["password"] = "******";
            credentials["strategy"] = "local";

            socket.On("reauthentication-error", (message) => {
                socket.Emit("authenticate", (error, context) => {
                    Console.WriteLine("reauthenticated");
                }, credentials);
            });

            socket.Emit("authenticate", (error, context) => {
                Console.WriteLine("authenticated");
            }, credentials);

            Console.ReadKey();
        }
예제 #15
0
        public ISocket GetSocket(string uri, string query)
        {
            var opts = new IO.Options();

            opts.QueryString = query;
            var sock = IO.Socket($"{uri}", opts);

            return(new Socket(sock));
        }
예제 #16
0
        private static Socket CreateSocket(int id)
        {
            var options = new IO.Options();

            //options.Transports = ImmutableList.Create("polling");
            options.ExtraHeaders = new Dictionary <string, string>()
            {
                { "token", "123xyz" }
            };
            var socket = IO.Socket("http://localhost:8000", options);

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                Console.WriteLine(id + " Connected");
            });

            socket.On(Socket.EVENT_DISCONNECT, () =>
            {
                Console.WriteLine(id + " Disconnected");
            });

            socket.On(Socket.EVENT_MESSAGE, (data) =>
            {
                Console.WriteLine(id + " received: " + data);
                socket.Send("ack");
                socket.Send(data);
            });

            socket.On("execute", new Acks2ListenerImpl((job, cb) =>
            {
                Console.WriteLine(id + " received: Execute " + job);
                var iack = (IAck)cb;
                iack.Call("received");
                var fakeJob = Task <bool> .Factory.StartNew(() =>
                {
                    Thread.Sleep(5000);
                    return(true);
                });
                bool success = fakeJob.Result;
                var result   = new
                {
                    id      = ((dynamic)job).id,
                    success = success
                };
                Console.WriteLine("Emitting job complete");
                socket.Emit("complete", JsonConvert.SerializeObject(result));
            }));

            socket.On(Socket.EVENT_ERROR, (err) =>
            {
                Console.WriteLine($"Error: {err}");
            });

            return(socket);
        }
예제 #17
0
        public WebSocket()
        {
            if (string.IsNullOrEmpty(Properties.Settings.Default.WebSocketUrl))
            {
                new ArgumentNullException("WebSocket URLが設定されていません。");
            }

            var options = new IO.Options();

            //// JWT Token
            //if (Model.WebAPI != null && !string.IsNullOrEmpty(Model.WebAPI.token))
            //{
            //    options.ExtraHeaders.Add("Authorization", string.Format("Bearer {0}", Model.WebAPI.token));
            //}

            socket = IO.Socket(Properties.Settings.Default.WebSocketUrl, options);

            socket.On(Socket.EVENT_CONNECT, (data) =>
            {
                logger.Debug($"EVENT_CONNECT {data}");

                JObject jout = JObject.FromObject(new { channel = "BroadcastChannel" });

                socket.Emit("subscribe", jout);
            });

            socket.On(Socket.EVENT_CONNECT_ERROR, (data) =>
            {
                logger.Debug($"EVENT_CONNECT_ERROR {data}");
            });

            socket.On(Socket.EVENT_CONNECT_TIMEOUT, (data) =>
            {
                logger.Debug($"EVENT_CONNECT_TIMEOUT {data}");
            });

            socket.On(Socket.EVENT_DISCONNECT, (data) =>
            {
                logger.Debug($"EVENT_DISCONNECT {data}");
            });

            socket.On(Socket.EVENT_ERROR, (data) =>
            {
                logger.Debug($"EVENT_ERROR {data}");
            });

            socket.On(Socket.EVENT_MESSAGE, (data) =>
            {
                logger.Debug($"EVENT_MESSAGE {data}");
            });

            // プレゼンス情報の更新イベント
            socket.On("App\\Events\\PresenceUpdated", new PresenceUpdateEvent(this));
        }
예제 #18
0
        private void SetupMeshbluConnection()
        {
            var opts = new IO.Options();

            opts.Port     = _config.MeshbluPort;
            opts.ForceNew = true;
            opts.Secure   = true;
            opts.IgnoreServerCertificateValidation = true;

            _socket = Quobject.SocketIoClientDotNet.Client.IO.Socket(_config.MeshbluUrl, opts);
        }
        private IO.Options CreateOptions()
        {
            var options = new IO.Options();

            options.Port     = 3000;
            options.Hostname = "http://localhost";
            options.ForceNew = true;
            //log.Info("Please add to your hosts file: 127.0.0.1 " + options.Hostname);

            return(options);
        }
예제 #20
0
        protected IO.Options CreateOptionsSecure()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            var config  = ConfigBase.Load();
            var options = new IO.Options();

            options.Port     = config.server.ssl_port;
            options.Hostname = config.server.hostname;
            log.Info("Please add to your hosts file: 127.0.0.1 " + options.Hostname);
            options.Secure = true;
            options.IgnoreServerCertificateValidation = true;
            return(options);
        }
예제 #21
0
        public LinkIO connect(Action listener)
        {
            IO.Options opts = new IO.Options();
            Dictionary <String, String> query = new Dictionary <String, String>();

            query.Add("user", user);

            if (id != "")
            {
                query.Add("id", id);
            }

            opts.Query       = query;
            opts.AutoConnect = false;

            socket = IO.Socket("http://" + serverIP, opts);

            socket.On("users", (e) =>
            {
                if (userInRoomChangedListener != null)
                {
                    userInRoomChangedListener.Invoke(((JArray)e).ToObject <List <User> >());
                }
            });

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                connected = true;
                listener.Invoke();
            });

            socket.On(Socket.EVENT_DISCONNECT, () =>
            {
                connected = false;
            });

            socket.On("event", (Object o) =>
            {
                JObject evt      = (JObject)o;
                String eventName = (String)evt.SelectToken("type");
                if (eventListeners.ContainsKey(eventName))
                {
                    eventListeners[eventName].Invoke(new Event(evt));
                }
            });

            socket.Connect();

            return(this);
        }
예제 #22
0
        static void Main(string[] args)
        {
            //testnsspi();

            var config = new IO.Options
            {
                Transports           = ImmutableList.Create(WebSocket.NAME /*, Polling.NAME*/),
                ForceNew             = true,
                AutoConnect          = false,
                Timeout              = 60000,
                ReconnectionDelay    = 5000,
                ReconnectionDelayMax = 5000,
                ReconnectionAttempts = 0
            };

            var url = new Uri("https://socketlab.screenmeet.com");

            var manager = new Manager(url, config);
            var socket  = manager.Socket(url.LocalPath);

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                Console.WriteLine("Connected");
            })
            .On(Socket.EVENT_DISCONNECT, () =>
            {
                Console.WriteLine("Disconnected");
            })
            .On(Socket.EVENT_CONNECT_ERROR, data =>
            {
                Console.WriteLine($"Connect Error: {data}");
            })
            .On(Socket.EVENT_ERROR, data =>
            {
                Console.WriteLine($"Error: {data}");
            })
            .On("message", data =>
            {
                Console.WriteLine(data);
            });

            socket.Connect();
            socket.Emit("message", () => { }, "test 12345");

            Thread.Sleep(2000);

            socket.Emit("message", () => { }, "test 64578");

            Console.ReadLine();
        }
예제 #23
0
        protected IO.Options CreateOptions()
        {
            var log = LogManager.GetLogger(Global.CallerName());


            var config  = ConfigBase.Load();
            var options = new IO.Options();

            options.Port     = config.server.port;
            options.Hostname = config.server.hostname;
            options.ForceNew = true;
            log.Info("Please add to your hosts file: 127.0.0.1 " + options.Hostname);

            return(options);
        }
예제 #24
0
 private void Init(string path, string query)
 {
     if (query != null)
     {
         var opts = new IO.Options()
         {
             Query = query
         };
         sock = IO.Socket(path, opts);
     }
     else
     {
         sock = IO.Socket(path);
     }
 }
예제 #25
0
        internal void ShowGameView(LoginResponse loginResponse)
        {
            IO.Options options = new IO.Options {
                AutoConnect = false
            };
            //IO.Options options = null;

            clientsocket = IO.Socket(Globals.URLWITHPORTNO, options);
            clientsocket.Connect();

            GameView gameView = new GameView(this, clientsocket, loginResponse);

            gameView.Parent = tableLayoutPanel1;
            tableLayoutPanel1.Controls.Add(gameView);
            this.Size = gameView.MaximumSize;
        }
예제 #26
0
        IO.Options CreateDefaultOptions()
        {
            IO.Options options = new IO.Options();
            options.QueryString = String.Format("{0}={1}&{2}={3}&{4}={5}",
                                                PID_KEY,
                                                Process.GetCurrentProcess().Id.ToString(),
                                                SDK_VERSION_KEY,
                                                GameLiftServerAPI.GetSdkVersion().Result,
                                                FLAVOR_KEY,
                                                FLAVOR
                                                );
            options.AutoConnect = false;
            options.ForceNew    = true;
            options.Transports  = System.Collections.Immutable.ImmutableList.Create("websocket");

            return(options);
        }
예제 #27
0
 public SocketManager(bool isOffline)
 {
     this.IsOffline = isOffline;
     if (!this.IsOffline)
     {
         IO.Options op = new IO.Options
         {
             Reconnection = false
         };
         Socket = IO.Socket("http://" + SERVER_ADDRESS + ":" + SERVER_PORT, op);
         //InitializeOns();
     }
     else
     {
         this.UserName  = "******";
         this.SessionID = "offlineSessionId";
     }
     this.Compteur = 0;
 }
        IO.Options CreateDefaultOptions()
        {
            IO.Options options = new IO.Options();
            options.QueryString = String.Format("{0}={1}&{2}={3}&{4}={5}",
                                                PID_KEY,
                                                Process.GetCurrentProcess().Id.ToString(),
                                                SDK_VERSION_KEY,
                                                GameLiftServerAPI.GetSdkVersion().Result,
                                                FLAVOR_KEY,
                                                FLAVOR
                                                );
            options.AutoConnect = false;
            options.Transports  = new List <string>()
            {
                "websocket"
            };

            return(options);
        }
예제 #29
0
        static void Main(string[] args)
        {
            var opts = new IO.Options {
                ForceNew = true, Upgrade = true
            };
            var socket = IO.Socket("https://streams.dapowerplay.com?apikey=xxxxx-xxxx-xxxx-xxxx-xxxxxxxx&apisecret=xxxxx-xxxxxxx-xxxxxxx-xxxxxxx", opts);

            //example parameters
            var jsonParams = JsonConvert.DeserializeObject("[{ product: 'trades', exchange: 'bitstamp', base: 'BTC', quote: 'USD'}]");

            socket.On(Socket.EVENT_CONNECT, d =>
            {
                Console.WriteLine("Connected!");
                socket.Emit("subscribe", (err, stream) => { }, jsonParams);
            });

            socket.On("trades", trades => { Console.WriteLine(trades); });
            Console.ReadLine();
        }
예제 #30
0
        /// <summary>
        /// Toggle on and off subscription to automatic
        /// BIM update from cloud. Return true when subscribed.
        /// </summary>
        public static bool ToggleSubscription()
        {
            if (null != _event)
            {
                Util.Log("Unsubscribing...");

                _socket.Disconnect();
                _socket = null;

                _bimUpdater = null;

                _event.Dispose();
                _event = null;

                Util.Log("Unsubscribed.");
            }
            else
            {
                Util.Log("Subscribing...");

                _bimUpdater = new BimUpdater();

                var options = new IO.Options()
                {
                    IgnoreServerCertificateValidation = true,
                    AutoConnect = true,
                    ForceNew    = true
                };

                _socket = IO.Socket(_url, options);

                _socket.On(Socket.EVENT_CONNECT, ()
                           => Util.Log("Connected"));

                _socket.On("transform", data
                           => Enqueue(data));

                _event = ExternalEvent.Create(_bimUpdater);

                Util.Log("Subscribed.");
            }
            return(null != _event);
        }