主机名中带有用户令牌的UWP C#.net StreamSocket

主机名中带有用户令牌的UWP C#.net StreamSocket,c#,uwp,access-token,hostname,stream-socket-client,C#,Uwp,Access Token,Hostname,Stream Socket Client,是否有方法将StreamSocket的主机名格式化为包含用户令牌?当我尝试将URI和用户令牌一起使用时,会出现“参数不正确”异常。我已经成功地使用了MessageWebSocket,但我需要一个StreamSocket,因为它能够(轻松地)在Windows10UWP的后台运行。这是我的密码。任何帮助都将不胜感激 public static async void ConnectToStreamSocket() { StreamSocket socket = new Stre

是否有方法将StreamSocket的主机名格式化为包含用户令牌?当我尝试将URI和用户令牌一起使用时,会出现“参数不正确”异常。我已经成功地使用了MessageWebSocket,但我需要一个StreamSocket,因为它能够(轻松地)在Windows10UWP的后台运行。这是我的密码。任何帮助都将不胜感激

public static async void ConnectToStreamSocket()
    {
        StreamSocket socket = new StreamSocket();
        string hostUri = "//example.myexample.com/websocket/dfkjlkdfskldklfdkddkfdkffjf";
        HostName host = new HostName(hostUri);           
        string proto = "wss";
        await socket.ConnectAsync(host, proto);
    }
当我尝试将URI和用户令牌一起使用时,会出现“参数不正确”异常

的参数不是,而是包含主机名或IP地址的字符串。根据
hostName
参数的描述,它可以包含以下内容之一:

  • 可由域名系统(DNS)或其他命名空间提供程序解析的主机名
  • 与本地计算机上以下文件中的字符串匹配的主机名:%WINDIR%\system32\drivers\etc\hosts
  • 包含主机的IPv4或IPv6网络地址的字符串
对于
“//example.myexample.com/websocket/dfkjlkdfsklklfdkdkffjf”
,这是一个URI,不满足上述要求,因此类无法识别它。可以识别像
example.myexample.com
这样的值

对于为什么可以成功地使用该类,这是因为该方法需要您提供的URI参数

但是我需要一个StreamSocket,因为它能够(轻松地)在Windows10UWP的后台运行

WebSockets
提供了一种机制,用于客户端和服务器之间使用HTTP通过web进行快速、安全的双向通信
插座
可用于与其他设备通信。它们不是相同的东西,我们不能简单地将
WebSockets
传输到
StreamSocket
。有关uwp中的
WebSockets
StreamSockets
的更多详细信息,请参考官方文件和


但是
WebSockets
可以在后台使用,您可能不需要
StreamSocket
。如果您在后台使用WebSocket,则必须使用。有关如何将WebSocket与ControlChannelTrigger一起使用的详细信息,请参考。

谢谢。我现在正在使用ControlChannelTrigger,当数据通过MessageWebSocket时,它成功地触发了my background任务。此后,我一直在寻找如何将通过套接字接收到的数据放入后台任务,以便能够处理它。到目前为止,我还没有在网上找到任何解释该过程的内容。@JamesB,请尝试参考。顺便说一下,如果我的回答对你有帮助,请标记为已接受。如果您仍然有新的问题,您可以打开新的线程。