2017-10-17 204 views
8

我试图用Xamarin和WebSocket4Net进行一个简单的测试,但它在打开()时出现“操作已在进行中”失败。下面的示例代码:WebSocket4Net简单的例子失败,“操作已在进行中”

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标准平台= netstandard1.4

我是相当新的.NET/Xamarin,但有多年在我身后的软件开发。

回答

1

我有0.15的相同问题。你有没有尝试降级到0.14,并删除SuperSocket?

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

Getting this error when trying to connect in StartReceive()

下面是摘录:

Excerpt from GitHub issue

+3

虽然此链接可以回答这个问题,最好是在这里有答案的主要部件,并提供链接以供参考。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/评论/低质量帖/ 18199825) –

+2

@AnuragDaolagajao这不是一个链接唯一的答案。我建议降级到0.14。我会复制一些更多的信息来满足审计。 – wonea