猿问

为什么我没有收到来自 socket.io 连接事件的任何响应

我刚刚开始使用 socket.io 并练习我想创建一个服务器,每次与客户端建立连接时,它的输出都会告诉我“用户已连接”。我认为只需启动服务器并转到localhost:5000. 之后,我会在控制台中看到来自连接的输出消息。


const express = require('express')

const app = express()


app.get('/', (req, res) => {

  res.send('I am alive')

})


PORT = process.env.PORT || 5000 


const server = app.listen( PORT, 

    () =>{ console.log(`Listening to http://localhost:${PORT}`)})


const io = require('socket.io')(server)


io.on('connection', function(socket) {

    console.log('A user connected');})


对于此过程,我键入node server.js,等到消息Listening to http://localhost:5000出现,然后转到页面。但是当我导航到该页面时,我看不到控制台消息。显示消息是否需要 html 文件?还是我没有看到重要的一步?我看过一些教程,但它们都使用 html 文件,我想避免这一步。非常感谢!


饮歌长啸
浏览 170回答 2
2回答

有只小跳蛙

通过编写此代码在服务器上io.on('connection', function(socket) {     console.log('A user connected'); })您正在收听连接,并且某人必须在与您的服务器相同的 url 上连接到该服务器的套接字,例如像这样var socket = require('socket.io-client')('http://localhost:5000');socket.on('connect', function () {     socket.on("FromAPI", data => {        setResponse(data);     });     socket.emit("FromAPI") }当您在 html 或任何其他代码中的任何地方建立套接字连接时,console.log() 将在服务器上打印数据

慕尼黑5688855

您共享的代码也是您需要设置客户端的服务器端。客户端:<!DOCTYPE html><html><head>&nbsp; &nbsp; <meta charset="UTF-8">&nbsp; &nbsp; <meta name="viewport" content="width=device-width, initial-scale=1.0">&nbsp; &nbsp; <title>Document</title></head><body><script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script><script>&nbsp; &nbsp; var socket = io('http://localhost:<PORT>');</script></body></html>
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答