【问题标题】:Websockets in background task UWP Windows 10后台任务 UWP Windows 10 中的 Websockets
【发布时间】:2017-10-04 09:18:03
【问题描述】:

有没有办法在后台任务中监听 websocket 消息?我曾尝试在 Windows 10 上使用ControlChannelTrigger,但在关闭应用程序后它似乎不起作用(它在应用程序运行时起作用)。我注意到注册的任务没有持久化。每当我启动应用程序时,它都无法在 BackgroundTaskRegistration 集合中找到它。我注意到,当我使用SocketActivityTrigger 时,任务会持续存在,但我不知道是否可以将SocketActivityTriggerMessageWebSocket 一起使用。我还尝试将SocketActivityTriggerStreamSocket 类一起使用,但我也不知道如何连接到"wss://" 端点。

我在关注这个例子: https://code.msdn.microsoft.com/windowsapps/ControlChannelTrigger-91f6bed8

以前我使用 WNS 后台任务,但现在我想摆脱我的服务并直接在后台任务中收听。

【问题讨论】:

  • 应用程序关闭时后台任务完成。您必须为该任务创建服务。一种解决方法是避免应用程序完全关闭,您可以取消应用程序关闭并隐藏表单(请记住让用户以某种方式恢复应用程序,例如托盘图标)
  • @Gusman 为什么会这样?关闭应用时,Wns 后台任务未完成。
  • BackgroundTask 使用后台线程,主线程结束后后台线程结束。您可以尝试使用 Thread 而不是 BackgroundTask,但请相信我,这会很痛苦,因为它会让应用程序卡住并且无法恢复它。
  • @Gusman 我们说的是同一个 BackgroundTask 吗? docs.microsoft.com/en-us/windows/uwp/launch-resume/…
  • 老兄,我允许你称我为白痴...我将 BackgroundTask 与 BackgroundWorker 混淆了...

标签: c# uwp


【解决方案1】:

如果可以的话我会评论:

对 Out of Process 后台任务不太熟悉,但可以看看examples 的一些内容。

Tasks/ 下是他们如何实现后台任务的示例,BackgroundTask 下是基于 UI 的示例应用程序。似乎您可以注册事件并使用它们在两者之间进行通信。

【讨论】:

  • 谢谢,但我知道如何实现后台任务。它是一个特定的后台任务,可以在应用关闭时监听 websocket。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-29
  • 1970-01-01
相关资源
最近更新 更多