C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – 使用Ably.io连接创建连接时出现Unknown错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个用例,用户尚未登录应用程序,也没有创建任何身份验证令牌.应用程序需要连接到公共通道上的Web服务器以检查应用程序更新.连接失败.使用以下错误原因:“未知错误;代码:500; HttpStatus代码:(404)NotFound.

来自Nuget 0.8.11的Ably库和SDK.

以下代码未连接到Web服务器.

public ExtendedAblyIoClient(string name,string ClientId,string ChannelId,string AuthUrl,string ablyKey)
    {
        _name = name;
        _authUrl = AuthUrl;
        _clientId = ClientId;
        _channelId = ChannelId;
        _ablyAppKey = ablyKey;
        _authUri = new Uri(_authUrl);  // local host for testing and development.
        _httpRequestTime = TimeSpan.FromHours(2.0);

        ClientOptions clientOptions = new ClientOptions
        {
            Key = _ablyAppKey,ClientId = _clientId,AuthUrl = _authUri,Tls = false,HttpRequestTimeout = _httpRequestTime,HttpOpenTimeout = _httpRequestTime
        };

        commonInitialization(clientOptions);
        _channel = _ablyClient.Channels.Get(_channelId);
        _channel.Subscribe(message =>
        {
            OnMessageCallback(_sender,_channelId,message.Data.ToString());
        });

    }

    private void commonInitialization(ClientOptions clientOptions)
    {
        _ablyClient = new AblyRealtime(clientOptions);

        _ablyClient.Connection.On(ConnectionState.Connected,args =>
        {
            realTimeClientOnConnected(_sender);
        });

        _ablyClient.Connection.On(ConnectionState.Disconnected,args =>
        {
            realTimeClientOnDisconnected(_sender);
        });
        _ablyClient.Connection.On(ConnectionState.Failed,args =>
        {
            string WhyError = _name + " Failed: " + _ablyClient.ToString();
            realTimeClientOnDisconnected(WhyError);
        });
    }

解决方法

404将来自客户端库,试图联系您指定的AuthUrl,并获得404.

从您的问题来看,如果连接到“公共频道”,您似乎不必进行身份验证.这不是Ably auth的工作方式;任何连接到您的应用程序需要进行身份验证的用户都需要使用令牌或API密钥才能进行身份验证.

如果您不希望它们连接到不在public:namespace中的任何通道,并且只具有这些的订阅功能,则可以将令牌的权限设置为{“public:*”:[“subscribe” ]}.但是你仍然需要给他们一个代币.

阅读https://www.ably.io/documentation/general/authentication获取有关Ably的auth模型的文档,以及https://www.ably.io/documentation/realtime/authentication用于验证实时连接的具体内容.

编辑:你指出你也传递了一个键.客户端不能同时使用它们 – 它要么与密钥连接,要么从authUrl获取一个令牌并与之连接 – 所以它可能只是忽略其中一个.删除您不想使用的那个.

编辑:我还建议删除禁用Tls和更改http超时的选项,并将它们保留为认值.除非您有某些特定原因禁用tls,否则出于安全原因,我们强烈建议您将其保留为启用状态.

大佬总结

以上是大佬教程为你收集整理的c# – 使用Ably.io连接创建连接时出现Unknown错误全部内容,希望文章能够帮你解决c# – 使用Ably.io连接创建连接时出现Unknown错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: