【发布时间】:2017-10-04 09:18:03
【问题描述】:
有没有办法在后台任务中监听 websocket 消息?我曾尝试在 Windows 10 上使用ControlChannelTrigger,但在关闭应用程序后它似乎不起作用(它在应用程序运行时起作用)。我注意到注册的任务没有持久化。每当我启动应用程序时,它都无法在 BackgroundTaskRegistration 集合中找到它。我注意到,当我使用SocketActivityTrigger 时,任务会持续存在,但我不知道是否可以将SocketActivityTrigger 与MessageWebSocket 一起使用。我还尝试将SocketActivityTrigger 与StreamSocket 类一起使用,但我也不知道如何连接到"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 混淆了...