小编J-G*_*-Go的帖子

c# 检测 ClientWebSocket 何时断开连接(关闭)

经过长时间的搜索,我来找你帮助我。

我有一个 WPF 应用程序,使用 ClientWebSocket 类(使用 System.Net.WebSockets)连接到 WebSocket 服务器(NodeJS)。我的应用程序正在运行后台 Windows 应用程序,它第一次连接,然后在 1 分钟的计时器内尝试重新连接(如果尚未连接)。但是当我禁用连接(网络连接)时,我的应用程序没有检测到,所以每 1 分钟告诉我它已连接。我知道我的代码有问题,我不知道如何实现一个事件处理程序,以便在连接丢失(websocket 关闭)时得到通知。

我注意到当我连接到服务器时,我必须创建一个会话,然后我收到一个 session_id,现在我连接到了 websocket 服务器。

Class1 是一个库类,我使用 WebSockets 类

class1
{
    ClientWebSocket web_socket;
    bool connected = false;
    public async Task<bool> connect_socket()
    { 
        Object result_object;
        string session_id;
        try
        {
            if (connected == false)
            {
                web_socket = new ClientWebSocket();
                web_socket.Options.SetRequestHeader("headername", "headerValue");
                await web_socket.ConnectAsync(new Uri(" ... uri....."), CancellationToken.None);

                create_session();

                ArraySegment<byte> byte_received = new ArraySegment<byte>(new byte[1024]);
                WebSocketReceiveResult json_notify_result = await web_socket.ReceiveAsync(byte_received, CancellationToken.None);
                string string_notify = Encoding.UTF8.GetString(byte_received.Array);
                json_notify = JsonConvert.DeserializeObject<Dictionary<string, …
Run Code Online (Sandbox Code Playgroud)

c# connection networking system.net.websockets clientwebsocket

5
推荐指数
2
解决办法
7039
查看次数