Я пытался создать TCP-клиент с оставшимся API, используя nodejs, а также использовал сетевой модуль для установления TCP-соединения для отправки / получения данных. Основная идея состоит в том, чтобы использовать этот restAPI из браузера для загрузки тестовых TCP-соединений.
Здесь, в моем случае, при нагрузочном тестировании TCP нужно выполнить 2 шага.
1) отправить первоначальный TCP-запрос, который имеет токен для аутентификации.
2) затем отправьте другой TCP-запрос для отправки некоторых данных.
Проблема возникает, когда я пытаюсь отправить второй запрос TCP после аутентификации. Получение ответа как недопустимого сеанса.
Пожалуйста, предложите, если я могу отправить запрос TCP для аутентификации и использования того же сеанса / соединения при выполнении последующих запросов.
Я новичок в узле JS. Приношу свои извинения, если я не предоставил достаточно подробностей или сделал что-то недействительное.
Изначально я использовал приложение Packet Sender и включил в нем опцию постоянного соединения TCP. Это работало хорошо, как и ожидалось, но это для одного пользователя и не может использовать этот инструмент для нагрузочного тестирования. Здесь, в этом инструменте с включенным постоянным TCP, я вижу, что локальный порт исправлен и не меняется при отправке нескольких запросов, но с помощью кода js моего узла я вижу, что локальный порт меняется при каждом новом запросе.
Я также использовал TCP Sampler в Jmeter с возможностью повторного использования соединения, но не работает, когда я отправляю второй запрос после аутентификации.
var Net = require('net');
var express = require("express");
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.post('/api/push', function (req, res) {
var reqBody = req.body.reqBody;
var req = JSON.stringify(reqBody);
const client = new Net.Socket({
allowHalfOpen: true
});
client.connect({
port: req.body.port,
host: req.body.host
}, function () {
client.write(req);
});
client.on('data', function (chunk) {
res.write(chunk.toString());
//Tried to use client connection information, but didnt worked not sure if i missed something.
console.log(JSON.stringify(client));
// Tried commenting below client.end but no luck.
client.end();
});
client.on('end', function () {
res.end();
});
client.on('error', function (err) {
console.log("Error: " + err.message);
res.write(err.message);
client.end();
});
});
app.listen(1234, () => {
console.log("Server running on port 1234");
});
1) отправьте restAPI с хоста / порта TCP-сервера и запросите тело для аутентификации.
2) отправьте другой restAPI для использования того же TCP-соединения и отправьте данные. но это не удалось просто