问题描述
我正在考虑创建一个 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 社区 2017,版本 15.9.25,Xamarin iOS 12.4.0.64)
解决方法
就像我在评论中提供的链接一样,您可以使用 NSURLSessionWebSocketTask
来创建通过 WebSockets 协议标准进行通信的 URL 会话任务。
NSUrlSessionConfiguration nSUrlSessionConfiguration=null;
NSUrlSession session= NSUrlSession.FromConfiguration(nSUrlSessionConfiguration);
NSUrl nSUrl =new NSUrl("");
NSUrlSessionWebSocketTask task = session.CreateWebSocketTask(nSUrl);