【问题标题】:WebSocket in Background transfer and NSURLSession in Xamarin.iOSXamarin.iOS 中的后台传输和 NSURLSession 中的 WebSocket
【发布时间】:2021-07-07 02:03:45
【问题描述】:

我正在考虑创建一个 Xamarin.iOS 应用程序,该应用程序可以在应用程序处于后台或挂起状态时连接到 WebSocket 服务器。一旦从服务器接收到某个“关闭”消息,应用程序就会关闭通道。

根据 Apple 的文档,NSUrlSession 允许 create a WebSocket task for the provided URL

Xamarin 有一个关于使用 NSUrlSession 的简短指南,但 API 参考文档 does not have 任何与 WebSocket 相关的方法。

搜索引擎搜索“xamarin nsurlsession webSocketTaskWithURL”返回零结果。

是否可以在 Xamarin.iOS 的 NSUrlSession 中使用 WebSocket?


更新 1:

Visual Studio 对NSUrlSessionWebSocketTask.CreateWebSocketTask 一无所知:

(Microsoft Visual Studio Community 2017,版本 15.9.25,Xamarin iOS 12.4.0.64)

【问题讨论】:

  • 您可以查看以下链接中的代码。它使用 websock 进行连接。 developer.apple.com/forums/thread/653553
  • @WendyZang-MSFT 这不能回答我的问题。我已经知道 iOS 中的 WebSocket 是如何工作的。

标签: ios xamarin websocket xamarin.ios nsurlsession


【解决方案1】:

就像我在评论中提供的链接一样,您可以使用NSURLSessionWebSocketTask 来创建一个通过 WebSockets 协议标准进行通信的 URL 会话任务。

  NSUrlSessionConfiguration nSUrlSessionConfiguration=null;
        NSUrlSession session= NSUrlSession.FromConfiguration(nSUrlSessionConfiguration);
        NSUrl nSUrl =new NSUrl("");
        NSUrlSessionWebSocketTask task = session.CreateWebSocketTask(nSUrl);

【讨论】:

  • 我只是尝试按照您在基本 Xamarin Forms 应用程序中的建议实施它。 Visual Studio 对NSUrlSessionWebSocketTask.CreateWebSocketTask 一无所知,我正在用屏幕截图更新原始帖子。您能否指出指定了NSUrlSessionWebSocketTask.CreateWebSocketTask 的Xamarin 文档?我似乎在官方文档中找不到它。
猜你喜欢
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多