gpt4 book ai didi

node.js - 如何在 API 调用下生成套接字发出事件

转载 作者:太空宇宙 更新时间:2023-11-04 02:44:57 25 4
gpt4 key购买 nike

我需要有关 Socket.io 的帮助/支持/指导在我的服务器页面(即 app.js)上,我初始化了套接字并且工作正常。现在我想调用其他页面的emit函数。但我没有从另一个页面获取该事件,因为该事件是在连接下生成的。我将分享伪代码,通过它您可以了解 app.js 页面

const io = require('socket.io');
const server = io.listen(3003);
const triggerEvent = (socket) => {
return socket.emit('event-trigger', true);
}
server.on('connection', function (socket) {
triggerEvent(socket);
});

我还尝试使用 Module.exports triggerEvent 函数并在其他页面获取该函数我正在打开并测试套接字连接的 HTML 页面测试.html:

<html>

<head>
<title>Socket io client</title>
<script src="http://localhost:3003/socket.io/socket.io.js"></script>
<script>
var socket = io("http://localhost:3003");
// use your socket
socket.on("event-trigger", (message) => {
// do something with the message.
alert(message)
console.log(message)
})
</script>
</head>

<body>
</body>

</html>

所以目前它运行良好。如果我打开 HTML 页面,则套接字服务器生成警报。用户还在我的服务器控制台上连接了消息打印。

现在我有多个路由,并且在多个文件下编写了 API 功能。假设我有一些路由文件夹,其中有handle.js 文件。在该文件下,假设我有一个名为 localhost:3000/likepost 的 API。因此,在这个 API 上,当用户发布类似内容并将 200 成功响应发送回前端服务器时,然后就在我想要触发事件,即 socket .emit('event-trigger', true);并且此事件将向前端发送事件触发的请求,因此前端将显示一些通知,例如有人喜欢您的帖子正在平台上呈现类似的内容。请为此提供一些指导。非常感谢任何帮助或建议。

最佳答案

您的套接字连接引用未附加到发射函数,它应该位于您的“连接”(server.on('connection'))回调函数内引用如下:

  const io = require('socket.io');
const server = io.listen(3003);

server.on('connection', function (socket) {
socket.emit('event-trigger', true);
});

关于node.js - 如何在 API 调用下生成套接字发出事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59138579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com