node.js - Flutter中的Socket两次接收事件
问题描述
这是我的前端代码。在我使用套接字的前端。发出,在服务器上创建了两次套接字 id。它会发出我在颤振聊天屏幕上收到的两次消息。
const express = require("express");
var http = require("http");
const app = express();
const port = process.env.PORT || 5000;
var server = http.createServer(app);
var io = require("socket.io")(server);
//middlewre
app.use(express.json());
var clients = {};
io.on("connection", (socket) => {
console.log("connetetd");
// accept();
console.log(socket.id, "has joined");
socket.on("signin", (id) => {
console.log(id);
clients[id] = socket;
console.log(clients);
});
socket.on("message", (msg) => {
console.log(msg);
let targetId = msg.targetId;
if (clients[targetId]) clients[targetId].emit("message", msg);
});
});
server.listen(port, "0.0.0.0", () => {
console.log("server started");
});
对于后端在后端,我使用的是节点 js,我在服务器上发现两次控制台日志,使用相同的套接字 id 两次消息被加入。
解决方案
推荐阅读
- javascript - 日期选择器上的材质 UI 自定义文本字段
- azure - 使用 Azure EventHubs Capture 生成的 Azure Data Lake Gen1 中的 Databricks 读取 avro 数据失败
- r - 在R中划分行
- python - 尝试在python中使用for循环输出数学方程
- python - 如何使用分类和数字(基准)轴绘制折线图?
- python - Python 如何从函数中编辑 Tkinter 标签?
- elasticsearch - 计算 ElasticSearch 中记录的最后一个快照的计数
- javascript - 如何在键盘事件上循环遍历数组
- css - 使用 CSS 径向渐变创建自定义形状
- sql - 如何将未选中的复选框值提取到 Oracle Apex 中的游标中