StreamSocketListener在UWP Apps中用于使该应用程序像服务器一样工作,即在网络端口上侦听并在该端口上接收到连接时作出响应。因此,我们为事件ConnectionReceived分配了一个处理程序,只要接收到连接,就会调用该处理程序。
并且如here所述,当我们也想在应用程序也被挂起时使之成为可能时,我们配置一个后台任务,每当收到连接时,便使用SocketActivityTrigger触发该任务。因此,在这种情况下,该过程将在后台任务的Run方法中发生。因此,这是否意味着当使用SocketActivityTrigger时,我们不再需要分配ConnectionReceived事件处理程序吗?
为什么我们需要事件StreamSocketListener.ConnectionReceived我们使用SocketActivityTrigger吗?
两者之间有区别。 StreamSocketListener就像服务器一样,当您的应用程序连接到侦听器时,将触发StreamSocketListener.ConnectionReceived
事件。您可以在其中获得连接的套接字并向其发送数据。
但是关于SocketActivityTrigger,当您的应用程序在套接字上接收数据,保活计时器到期或套接字被关闭时,将触发Run方法。