使用System.Net.WebSockets在我的应用中使用C#Websocket客户端。我发送和接收的所有代码都运行良好,但我不能为我的生活成功断开(我需要这样做,然后我可以再次使用客户端w /不同的主机名)。我已经创建了一个快速演示来展示我的问题。
这是我的程序代码:
class Program
{
static void Main(string[] args)
{
GetDocList();
Console.ReadLine();
}
static async Task<string> GetDocList()
{
var client = new myWSClient(new Uri("ws://localhost:9999/qlcplusWS"));
var docs = await client.ConnectAndDisconnect();
return docs;
}
}
这是我正在使用的课程
public class myWSClient
{
private ClientWebSocket _client;
public Uri _myURI;
public myWSClient(Uri MyURI)
{
_client = new ClientWebSocket();
_myURI = MyURI;
}
public async Task<string> ConnectAndDisconnect()
{
string dummyreturn = "";
await _client.ConnectAsync(_myURI, CancellationToken.None);
Console.WriteLine("Connected");
string status = "";
Console.WriteLine("Waiting to Disconnect, but it will never happen :(");
await _client.CloseAsync(WebSocketCloseStatus.NormalClosure, status, CancellationToken.None);
Console.WriteLine("Disconnected mate");
return dummyreturn;
}
}
我使用错误的方法还是我的代码只是语法错误?
答案 0 :(得分:0)
您必须等待返回方法,因为这些方法是异步的,并且主函数将在启动GetDocList()
方法的任务后继续执行。
GetDocList().Wait();