示例#1
0
        public bool ConnectToServer(string serverURI)
        {
            bool             result = false;
            SecurityResource securityResource;

            if (_SecurityResources.Children.Count() > 0)
            {
                securityResource = _SecurityResources.Children.First() as SecurityResource;
            }
            else
            {
                securityResource = new SecurityResource("1");
                _SecurityResources.Add(securityResource);
            }
            securityResource.ServerURI = serverURI;
            if (serverURI.StartsWith("coaps"))
            {
                if (!string.IsNullOrEmpty(_Channel.PSKIdentity))
                {
                    securityResource.SecurityMode    = TSecurityMode.PreSharedKey;
                    securityResource.ClientPublicKey = Encoding.UTF8.GetBytes(_Channel.PSKIdentity);
                    securityResource.SecretKey       = StringUtils.HexStringToByteArray(_Channel.PSKSecret);
                }
                else if (!string.IsNullOrEmpty(_Channel.CertificateFile))
                {
                    securityResource.SecurityMode = TSecurityMode.Certificate;
                }
            }
            else
            {
                securityResource.SecurityMode = TSecurityMode.NoSecurity;
            }
            result = ConnectToServer();
            return(result);
        }