SocketIO блокирует сервер - PullRequest
       4

SocketIO блокирует сервер

0 голосов
/ 27 ноября 2018

У меня есть простое приложение, которое использует экспресс для обслуживания статической страницы, которая создает соединение socketio.Проблема в том, что сервер перестает отвечать через минуту или две.Это код:

server.js

const path = require('path');
const http = require('http');
const express = require('express');
const socketIO = require('socket.io');  
const publicPath = path.join(__dirname, './public');

const port = 3000;

  let app = express();
  let server = http.createServer(app);
  var io = socketIO(server);

  app.get(`/`, (req, res) => {
    res.sendFile(publicPath + '/index.html');
  });

  server.listen(port, () => {
    console.log('listening...');
  })

  io.on('connection', (socket) => {
   socket.on('test', (data) => {
    console.log(data);
   });
  });

index.html

<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  </head>

  <body class="centered">
    <center><h1>This is a test</h1></center>
    <script src="/socket.io/socket.io.js"></script>
    <script>
      var socket = io();
      socket.on('connect', () => {
        socket.emit('test', 'this is some data');
      });
    </script>

  </body>

</html>

Package.json

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.16.4",
    "socket.io": "^2.1.1"
  }
}

Конечно, нет ошибок на сервере или клиенте.Если я уберу строку var socket = io(), приложение будет работать гладко.

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