簡體   English   中英

Websocket連接在C#中連接后立即關閉

[英]Websocket connection closing immediately after connection in c#

我正在嘗試在C#中實現Websockets ,我嘗試了許多方法,但沒有任何效果。

我)與ClientwebSocket類一起正常工作,但此類沒有事件(我需要事件)

ii)嘗試使用WebSocketSharp.WebSocket類,但在打開連接后立即關閉

iii)WebSocket4Net.WebSocket同樣的問題,立即關閉連接

誰能幫助我解決這個問題。在此先多謝。

class SocketConnection
{
    public static WebSocketSharp.WebSocket client;

    public void connectionEstablish()
    {
        //---------------------------WebSocketSharp ----------------------------

        using (client = new WebSocketSharp.WebSocket("ws://localhost:8182"))
        {
            client.OnClose += new EventHandler<CloseEventArgs>(onClosed);
            client.OnMessage += new EventHandler<MessageEventArgs>(onReceived);
            client.OnOpen += new EventHandler(OnConnectionOpen);

            client.Connect();

        }
      }
    public static void onClosed(object sender, EventArgs e)
    {
      Console.WriteLine("Inclose");
    }
    public static void onReceived(object sender, MessageEventArgs e)
    {
      Console.WriteLine("received");
    }
    public void OnConnectionOpen(object sender, EventArgs e)
    {
      Console.WriteLine("opened connection");
    }
}

我希望您的問題與代碼中的using有關。 變量client是一個using變量,因此在使用代碼塊結尾時將被處置(這是使用目的,自動調用dispose)。

這意味着在執行client.Connect();之后client.Connect(); 使用塊末端,因此將對象丟棄。 要驗證這一點,請嘗試刪除using塊並更改代碼,如下所示:

var client = new WebSocketSharp.WebSocket("ws://localhost:8182");

使用后不要忘記處理該物體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM