Я пытаюсь использовать npm zeromq-ng
в качестве уровня связи между JavaScript и C ++. ZeroMQ является обязательным здесь. Из-за ошибки в отправке двоичных данных в исходном npm zeromq
мне пришлось вернуться к zeromq-ng
.
zeromq-ng
требует асинхронных функций в JavaScript. Однако я не уверен, как заставить этот тип формата работать с npm socket.io
, так как мне нужно было настроить обратные вызовы.
Я пытался просто объявить объект zeromq в отдельной асинхронной функции, но я получаю ошибку сегментации на send()
. Я также попытался настроить обратные вызовы отдельно от асинхронной функции, которая вызывается с тем же результатом. Добавление любого вида цикла while к асинхронной функции препятствует правильной настройке любых обратных вызовов.
const zmqng = require("zeromq-ng");
async function run()
{
const pub = new zmqng.Publisher;
pub.bind("address...");
ws_io.on('connection', async function (socket_data) {
await pubSock.bind(pubAddr);
// . . .
ws_socket.on('serverEvent', async function (data) {
await pubSock.send("Hello, World!"); // segmentation fault here
});
});
}
run();
Я бы ожидал увидеть «Hello, World» на подписчике на стороне C ++, но вместо этого я получил ошибку сегментации exit status 139
.