Node.js v6.9.5
Installed npms: AutobahnJS, crypto-js
В общем задача: по wss установить сессию:
1). В каждом
POST запросе должен быть int параметр
nonce, который всегда больше своего предыдущего брата. Ну вы понимаете зачем.. И еще один параметр
command "action"
2). Так же в каждом запросе должны присутствовать заголовки(хедера)
key и
Sign. К тому же
Sign эта хеш, полученный в результате кодировки значения параметра
command, который в теле
POST запроса, ключом "secret" по алгоритму HMAC-SHA512.
Буду просто очень благодарен за помощь, ибо сам нисеку в node ваще, но очень сочно надо и прям занялся. Но.. вот такая вот проблемо. Хотя кое что я смог. Установить сессию без этих параметров, но на обычный wss адрес. Не тот который мне нужен. Тот который мне нужен, на нем я не могу установить соединение :*
Пример как это должно работать.
// в принципе я не уверен только в том правильно ли шифрую хеш
// и не могу понять почему curdata() возвращает всегда одно и тоже число, когда выполняется connection.open()
var autobahn = require('autobahn');
const crypto = require('crypto');
const hash = crypto.createHmac("sha512", "secret");
var post_request = 'getInfo';
var wsuri = "wss://adress/worker?key=somekey" + "&command=" + post_request + "&sign=" + hash.digest(post_request) + "&nonce=" + curdata();
var connection = new autobahn.Connection({
url: wsuri,
realm: "realm1"
});
connection.onopen = function (session) {
console.log("Websocket connection, good job..");
}
connection.onclose = function () {
console.log("Websocket connection closed");
}
connection.open();
function curdata() {
return Date.now();
}