createSession()

in greengrass-opcua-adapter-nodejs/subscriber.js [145:194]


    createSession() {
        var userIdentity = null;
        const self = this;
        console.log("createSession: config.userIdentity: " + self._serverConfig.userIdentity);
        if (self._serverConfig.userIdentity) {
            console.log('self._serverConfig.userIdentity.userName:' + self._serverConfig.userIdentity.userName);
            console.log('self._serverConfig.userIdentity.password:' + self._serverConfig.userIdentity.password);
            if (self._serverConfig.userIdentity.userName && 
                self._serverConfig.userIdentity.password) {
                userIdentity = self._serverConfig.userIdentity;
            }
        } else {
            console.log('self._serverConfig.userIdentity not exist');
        }

        self._client.createSession(userIdentity, (createSessionError, session) => {
            if (!createSessionError) {
                self._session = session;
                console.log('Session created');
                console.log('SessionId: ', session.sessionId.toString());
                console.log('self._serverConfig.certExist: ', self._serverConfig.certExist);

                // Feature to support non-certificate OPCUA Server.
                if (!self._serverConfig.certExist) {
                    self.emit('session_create');
                } else {
                    var result = ConfigAgent.compareWithTrustCert(session.serverCertificate);
                    console.log("cert compare result: " + result);

                    if (result === false) {
                        createSessionError = new Error("Server certificate not in our trust list ");
                    } else {
                        self.emit('session_create');
                    }
                }
            }

            if (createSessionError) {
                self._client.disconnect(function (err) {
                    if (err) {
                        console.log("OPCUAClient#withClientSession: client disconnect failed ?");
                        console.log('Got an error disconnecting from ', self._serverConfig.url, ' Err: ', err);
                    } else {
                        self.emit('disconnect');
                    }
                });
                console.log('Err: ', createSessionError);
            }
        });
    }