SocketIO on Heroku Ошибка: операция не разрешена - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть приложение nodejs, которое пингует список ips каждый раз, используя net-ping, и возвращает клиенту через socketio.Он работает правильно локально, но после развертывания на heroku выдает следующую ошибку:

2018-12-12T02:02:53.942131+00:00 app[web.1]: /app/node_modules/raw-socket/index.js:47
2018-12-12T02:02:53.942154+00:00 app[web.1]: this.wrap = new raw.SocketWrap (
2018-12-12T02:02:53.942155+00:00 app[web.1]: ^
2018-12-12T02:02:53.942157+00:00 app[web.1]:
2018-12-12T02:02:53.942159+00:00 app[web.1]: Error: Operation not permitted
2018-12-12T02:02:53.942161+00:00 app[web.1]: at new Socket (/app/node_modules/raw-socket/index.js:47:14)
2018-12-12T02:02:53.942162+00:00 app[web.1]: at Object.exports.createSocket (/app/node_modules/raw-socket/index.js:202:9)
2018-12-12T02:02:53.942164+00:00 app[web.1]: at Session.getSocket (/app/node_modules/net-ping/index.js:147:20)
2018-12-12T02:02:53.942166+00:00 app[web.1]: at new Session (/app/node_modules/net-ping/index.js:101:7)
2018-12-12T02:02:53.942168+00:00 app[web.1]: at Object.exports.createSession (/app/node_modules/net-ping/index.js:545:9)
2018-12-12T02:02:53.942169+00:00 app[web.1]: at Object.<anonymous> (/app/index.js:22:22)
2018-12-12T02:02:53.942171+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:689:30)
2018-12-12T02:02:53.942172+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
2018-12-12T02:02:53.942174+00:00 app[web.1]: at Module.load (internal/modules/cjs/loader.js:599:32)
2018-12-12T02:02:53.942175+00:00 app[web.1]: at tryModuleLoad (internal/modules/cjs/loader.js:538:12)

мой сервер - index.js:

const express = require('express')
const socketIO = require('socket.io')
const path = require('path')

const PORT = process.env.PORT || 3000
const INDEX = path.join(__dirname, 'public/index.html')

const server = express()
  .use((req, res) => res.sendFile(INDEX) )
  .listen(PORT, () => console.log(`Listening on ${ PORT }`))

const io = socketIO(server)

io.on('connection', (socket) => {
  console.log('Client connected')
  socket.on('disconnect', () => console.log('Client disconnected'))
})


const targets = [
    "185.70.40.182",
    "151.101.129.140",
    "176.32.103.205"
]
const ping = require ("net-ping")
const session = ping.createSession ()
setInterval(() => {
    targets.forEach(function (target){
        console.log(target)
        session.pingHost (target, function (error, target, sent, rcvd) {
            io.sockets.emit('update',{
                ip: target,
                rtt: rcvd - sent
            })
        })
    })


}, 5*1000)

Я несколько раз менял свой код, следуя предложениям онлайн иНикто не исправил эту проблему в уроке heroku.Я могу понять, что я делаю не так здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...