Ejemplo n.º 1
0
            public UniRx.IObservable <Websocket> Connection(Config config)
            {
                return(UniRx.Observable.Create <Websocket> (observer => {
                    var impl = new WebSocketSharp.WebSocket(config.url.ToString(), config.protocols);
                    System.EventHandler <WebSocketSharp.ErrorEventArgs> onError = (obj, e) => {
                        observer.OnError(new System.Exception(e.Message));
                    };

                    impl.OnError += onError;

                    foreach (var pr in config.coockie)
                    {
                        impl.SetCookie(new WebSocketSharp.Net.Cookie(pr.Key, pr.Value));
                    }

                    var socket = new Websocket(impl, shared_data);
                    impl.OnOpen += (sender, e) => {
                        impl.OnError -= onError;
                        this.shared_data.connected.Add(socket.GetHashCode(), socket);

                        observer.OnNext(socket);
                        observer.OnCompleted();
                    };
                    impl.ConnectAsync();

                    return new Sas.DisposeAction(() => {
                    });
                }));
            }