首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用C#和ASP.Net Core2.2连接和侦听外部websocket url

如何使用C#和ASP.Net Core2.2连接和侦听外部websocket url
EN

Stack Overflow用户
提问于 2019-04-08 18:47:07
回答 1查看 1.3K关注 0票数 1

我试图创建一个机器人,用C#和ASP.Net Core2.2监听WebSocket网址。

但我是新来WebSocket区的。

我阅读了微软关于WebSocket和ClientWebSocket的文档来解决我的问题。但这对我没有帮助。

我的应用程序如何侦听外部WebSocket地址并对传入的消息做出反应?

我尝试了下面的代码,但得到“无法创建抽象类或接口‘WebSocket’的实例”。错误。

代码语言:javascript
运行
复制
using (var ws = new WebSocket("wss://ws.example.com"))
{
    ws.OnMessage += (sender, e) =>
        Console.WriteLine("Message received" + e.Data);
    ws.OnError += (sender, e) =>
        Console.WriteLine("Error: " + e.Message);
    ws.Connect();
        Console.ReadKey(true);
}
EN

回答 1

Stack Overflow用户

发布于 2019-04-09 17:05:56

这在基本情况场景中应该是可行的。

代码语言:javascript
运行
复制
 public class Listener
    {
        public void StopListening()
        {
            this.src.Cancel();
        }
        private Task listenTask;
        private CancellationTokenSource src=new CancellationTokenSource();
        public Task Listen(string url)
        {

           listenTask = Task.Run(async () =>
            {
                try
                {
                    byte[] buffer = new byte[1024];
                    await socket.ConnectAsync(new Uri(url), CancellationToken.None);
                    while (true)
                    {
                        WebSocketReceiveResult result = await socket.ReceiveAsync(buffer, CancellationToken.None);
                        string data = Encoding.UTF8.GetString(buffer, 0, result.Count);
                        Console.WriteLine(data);
                    }
                }
                catch (Exception ex)
                {
                    //treat exception
                }
            },src.Token);
        }
    }

但是,如果您计划创建多个Listener对象(在路由上打开socketsHttpController的上下文中),那么情况就会改变。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55571667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档