WebSocket4Net 简单示例因“操作已在进行中”而失败

Posted

技术标签:

【中文标题】WebSocket4Net 简单示例因“操作已在进行中”而失败【英文标题】:WebSocket4Net simple example fails with "Operation already in progress" 【发布时间】:2017-10-17 11:32:12 【问题描述】:

我正在尝试使用 Xamarin 和 WebSocket4Net 进行简单测试,但它在 Open() 上失败,并显示“操作已在进行中”。示例代码如下:

using Xamarin.Forms;
using WebSocket4Net;
using System;
using SuperSocket.ClientEngine;

namespace SocketTest

    public partial class SocketTest : ContentPage
    
        private WebSocket websocket;
        public SocketTest()
        
            InitializeComponent();

        

        void Handle_Clicked(object sender, System.EventArgs e)
        
            websocket = new WebSocket("ws://echo.websocket.org/");
            websocket.Opened += Websocket_Opened;
            websocket.Error += Websocket_Error;
            websocket.Closed += Websocket_Closed;
            websocket.MessageReceived += Websocket_MessageReceived;
            websocket.Open();
        

        private void Websocket_Error(object sender, ErrorEventArgs e)
        
            Console.WriteLine(e.Exception.Message);
        

        private void Websocket_MessageReceived(object sender, EventArgs e)
        
            Console.WriteLine(e.ToString());
        

        private void Websocket_Closed(object sender, EventArgs e)
        
            Console.WriteLine(e.ToString());
        

        private void Websocket_Opened(object sender, EventArgs e)
        
            websocket.Send("Hello World!");
        
    

我从标准的多平台项目 (PCL) 开始,并添加了一个按钮来启动连接。

Versions:
0.15.0 WebSocket4Net
0.8.0.13 SuperSocket

PCL 配置为:.NET Standard Platform = netstandard1.4

我对 .NET/Xamarin 还很陌生,但我已经从事了多年的软件开发。

【问题讨论】:

【参考方案1】:

0.15 也有同样的问题。您是否尝试过降级到 0.14 并移除 SuperSocket?

有一个关于这个问题的 GitHub 问题。

Getting this error when trying to connect in StartReceive()

摘录如下:

【讨论】:

@AnuragDaolagajao 这不是仅链接的答案。我建议降级到0.14。我将复制更多信息以满足审核。

以上是关于WebSocket4Net 简单示例因“操作已在进行中”而失败的主要内容,如果未能解决你的问题,请参考以下文章

Websocket4Net 发送多条消息

使用 WebSocket4Net 的 Http 身份验证

简单的 C++ OpenCV imshow 示例因分段错误而崩溃

如何从 C# WebSocket4net 调用服务器事件(nodejs socket.io)

Websocket4Net 只接收第一条消息的回复

使用 c# 和 WebSocket4Net 发送 Json