2017-05-05 155 views
3

有沒有辦法在後臺任務中偵聽websocket消息?我試圖在Windows 10上使用ControlChannelTrigger,並且在關閉應用程序後它似乎不工作(它在應用程序運行時起作用)。我注意到註冊的任務沒有被保存。無論何時我啓動應用程序,它都無法在BackgroundTaskRegistration集合中找到它。我注意到當我使用SocketActivityTrigger時,任務仍然存在,但我不知道是否可以使用SocketActivityTriggerMessageWebSocket。我也嘗試使用SocketActivityTriggerStreamSocket類,但我也不知道如何連接到"wss://"端點。後臺任務中的Websockets UWP Windows 10

我下面這個例子: https://code.msdn.microsoft.com/windowsapps/ControlChannelTrigger-91f6bed8

以前我是用WNS後臺任務,但現在我想擺脫我的服務,並直接在後臺任務聽。如果我能

+0

當應用程序關閉時,後臺任務完成。您必須爲該任務創建一項服務。解決方法是避免應用程序完全關閉,您可以關閉應用程序並隱藏表單(記住讓用戶以某種方式恢復應用程序,每個示例使用托盤圖標) – Gusman

+0

@Gusman爲什麼會這樣? Wns後臺任務在應用程序關閉時未完成。 – MistyK

+0

BackgroundTask使用後臺線程,後臺線程在主線程完成時完成。你可以嘗試使用Thread而不是BackgroundTask,但是相信我,它會讓你的屁股感到痛苦,因爲它會讓應用程序停滯不前,無法恢復它。 – Gusman

回答

0

就會說:

不是超級熟悉的進程外後臺任務,但是看看一些examples的。

Tasks/是他們如何實現後臺任務的示例,BackgroundTask是基於UI的示例應用程序。似乎你可以註冊事件並使用它們在兩者之間進行通信。

+0

謝謝,但我知道如何實現後臺任務。這是一個特定的後臺任務,可以在應用程序關閉時收聽websockets。 – MistyK