-1

我正在尝试与前端沟通这个原生插件。它由一个素数生成器组成,当它执行时它写入控制台,我希望它通过套接字将它们发送到浏览器控制台。

使用此代码,我调用插件并在控制台中编写 napi_values:

binding.startThread((thePrime) =>
  console.log("Received prime from secondary thread: " + thePrime));

我已经尝试过使用 socket.emit。

socket.emit('dataout', addon.startThread(thePrime));

但我只能在控制台中编写。

将我从本机插件收到的 napi_values 发送到前端的正确方法应该是什么?我应该将“socket.io”更改为其他内容吗?

即使您自己没有尝试过,我也想阅读任何疯狂的代码提案。

我对应于套接字的代码:

sockets() {
        this.io.on('connection', socket => {

            console.log('cliente conectado', socket.id);

            socket.on('disconnect', () => {
                console.log('Cliente desconectado', socket.id);
            });

            //correct mode
            //addon.startThread((thePrime) => socket.emit('dataout', thePrime));

            socket.on('enviar-mensaje', ( payload, callback ) => {

                callback(payload);

            });

            socket.on('addonexe', () => {

                addon.startThread((thePrime) => socket.emit('dataout', thePrime));

            });

        });

    }
4

1 回答 1

0

这个

socket.emit('dataout', addon.startThread(thePrime));

发出函数的结果。这不是您想要的,您希望您的回调函数发出:

addon.startThread((thePrime) => socket.emit('dataout', thePrime));
于 2022-02-09T15:43:28.700 回答