【问题标题】:Socket.io keeps reconnecting, even i don't use socket.io nowSocket.io 不断重新连接,即使我现在不使用 socket.io
【发布时间】:2016-09-03 19:07:08
【问题描述】:

我已经运行了聊天服务器并将其删除。

所以,我没有任何使用 socket.io 的文件

'use strict'
const
    express = require('express')
    ,mongoose = require('mongoose')
    ,logger = require('morgan')

const
    app = express()


// === db setting ===



// === initial setting ===
app.set('view engine', 'pug');
app.set('views', './views');
app.use(express.static('public'));


// === 3rd party middlewares ===
app.use(logger('dev'));


// === router ===
app.get('/', (req, res, next) => {
    res.send('hello world');
});


// === error handler ===


// === server running ===
app.listen(8000, () => {
    console.log('=== server is running ===');
});

但是,当我运行新服务器时,它一直在下面向我显示此消息。

我该如何解决这个问题?

【问题讨论】:

  • 您仍在客户端使用 socket.io(但它失败了,因为您没有在服务器上运行它)。

标签: node.js socket.io server


【解决方案1】:

这表明您的前端代码中有一些 socket.io 客户端代码(例如,某些网页尝试使用您的服务器)尝试使用 socket.io 连接到您的服务器但失败。

要阻止这种情况发生,您需要从网页中删除 socket.io 代码。

您的网页中可能有一行代码如下所示:

var socket = io();

从网页中删除它(以及其他对 socket.io 的引用)。

【讨论】:

  • @Kwang - 你了解在服务器上运行的代码和在网页上运行的代码之间的区别吗?问题是由网页中运行的代码引起的。您在此处发布的代码是您的服务器代码,与此特定问题无关。您必须拥有属于您的应用程序一部分的网页,对吗?向我们展示这些代码。
  • 不,我没有任何前端代码。如您所见,我使用 res.send。
  • @Kwang - 呃,这个问题是由试图通过 socket.io 连接到您的服务器的前端代码引起的。因此,您将不得不在某处的前端代码中修复此问题,阻止该前端代码使用您的服务或更改您的服务器以支持 socket.io,或者只是忍受这个问题。这些是您的选择。
  • 这太奇怪了......就像一个幽灵......我确实重新启动了服务器和我的笔记本电脑(broser)。但它一直向我发送该请求...
  • @Kwang - 当您的服务器正在运行时是否会发生这种情况,但您的计算机上的任何地方都没有打开浏览器窗口(例如,所有浏览器都没有运行)?我猜想某处有一些浏览器窗口(可能从您的聊天应用程序运行旧代码)仍在某处打开并试图与您的服务器对话。
【解决方案2】:

要检查问题是否出在服务器上,请将您的端口号更改为其他类似 9001 的端口号

// === server running ===
app.listen(9001, () => {
    console.log('=== server is running ===');
});

这可能不会发生,但你必须看看是什么向端口 8000 发出这些请求。

【讨论】:

    猜你喜欢
    • 2017-08-18
    • 2021-04-12
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 2018-04-24
    • 2013-11-21
    相关资源
    最近更新 更多