繁体   English   中英

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

[英]Why am I not getting any response from socket.io connection event

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

 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的消息,然后我 go 到页面。 但是当我导航到该页面时,我看不到控制台消息。 显示消息是否需要 html 文件? 还是我没有看到重要的一步? 我看过一些教程,但它们都使用 html 文件,我想避免这一步。 非常感谢!

通过编写此代码在服务器上

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() 将在服务器上打印数据

您共享的代码也是您需要设置客户端的服务器端。

客户端:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
<script>
    var socket = io('http://localhost:<PORT>');
</script>
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM