kerryjiang / WebSocket4Net

A popular .NET WebSocket Client
Apache License 2.0
761 stars 271 forks source link

Unable to bind proxy to debug in fiddler #59

Open andrewooi99 opened 8 years ago

andrewooi99 commented 8 years ago

Hit exception that the remoteEndPoint is null in Connect method in SuperSocket.ClientEngine.Proxy when trigger .Open() method.

var proxy = new HttpConnectProxy(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888));
_socket.Proxy = (SuperSocket.ClientEngine.IProxyConnector)proxy;
_socket.Open();
kerryjiang commented 8 years ago

@sohaimeng Hello, do you have a stracktrace of this exception?

andrewooi99 commented 8 years ago

Code

using System;
using System.Net;
using SuperSocket.ClientEngine.Proxy;
using WebSocket4Net;
using ErrorEventArgs = SuperSocket.ClientEngine.ErrorEventArgs;
using System.Threading;

namespace Test
{
    class Program
    {
        private static WebSocket _socket;
        static void Main(string[] args)
        {
            try
            {
                _socket = new WebSocket("ws://echo.websocket.org", origin: "http://example.com");
                var proxy = new HttpConnectProxy(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888));
                _socket.Proxy = proxy as SuperSocket.ClientEngine.IProxyConnector;

                _socket.DataReceived += new EventHandler<DataReceivedEventArgs>(ws_DataReceived);
                _socket.MessageReceived += new EventHandler<MessageReceivedEventArgs>(ws_MessageReceived);
                _socket.Error += new EventHandler<ErrorEventArgs>(ws_Error);
                _socket.Closed += new EventHandler(ws_Closed);
                _socket.Opened += ws_Opened;
                _socket.Open();

                while (true)
                {
                    Thread.Sleep(1 * 1000);

                    if (_socket.State == WebSocketState.Open)
                        _socket.Send("test");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}

Stacktrace
   at SuperSocket.ClientEngine.Proxy.HttpConnectProxy.Connect(EndPoint remoteEndPoint)
   at SuperSocket.ClientEngine.TcpClientSession.Connect(EndPoint remoteEndPoint)
   at Test.Program.Main(String[] args) in C:\Users\ym.ooi\Desktop\Test\Test\Program.cs:line 27

Exception Message
Value cannot be null.
Parameter name: remoteEndPoint