Выполнить модуль NPM через кордову - PullRequest
0 голосов
/ 21 октября 2018

Я создал приложение, используя cordova, и все в порядке, ожидаю, что мне нужно использовать модуль узла, который не имеет эквивалента на стороне клиента, потому что я имею дело с потоками записи в файл и т. Д. Я обнаружил, что перехватчики Cordovaмой лучший способ на данный момент, где я создаю хук app_run для выполнения файла узла, который запускает сервер сокетов для прослушивания событий со стороны клиента.

Я знаю, это очень длинное решение, но мне кажется логически правильным, проблема в том, что когда я создаю сервер, создаю приложение через Visual Studio 2017, приложение запускается на моем телефоне Android, но VSвисит на стадии "развертывания".Я предполагаю, что это связано с цепочкой событий, поэтому я создал асинхронный скрипт, подобный этому:

(async function () {
    const server = require('http').createServer()
    const io = require('socket.io')(server)

    io.on('connection', function (socket) {
        console.log('heyo')
        socket.emit('hello world', 'hi')
    })

    server.listen(3000, function (err) {
        if (err) throw err
        console.log('listening on port 3000')
    })
})();

, но, похоже, это тоже не работает, как-то VS зависает при "развертывании".Если кто-то и может направить меня в правильном направлении, это будет высоко оценено.

PS: я знаю, что название отключено, но каждый раз, когда я использую StackOverflow, чтобы получить помощь в конкретной попытке, мне говорятчтобы сделать это по-другому, поэтому я оставлю это открытым.

1 Ответ

0 голосов
/ 21 октября 2018

Если цель состоит в том, чтобы использовать socket.io в вашем приложении Cordova, вам необходим JS-клиент для Интернета, и вам не нужно использовать npm для этого, просто добавьте ссылку на свой клиент jsфайл в вашем файле индекса.(должен находиться в папке "client" при запуске socket.io через npm).

 <script src="/socket.io/socket.io.js"></script>
 <script>
    const socket = io('http://localhost');
 </script>

https://socket.io/docs/client-api/

...