重新加载页面后消息消失

时间:2020-09-23 15:23:45

标签: javascript node.js socket.io

我创建了一个socket.io Web应用程序,当我单击该按钮发送消息时,该消息会显示一秒钟,但是当页面无故自动刷新时,该消息就会消失。如何防止页面刷新以及如何使socket.io保存消息。

这是服务器代码:

var express = require("express");
var io = require("socket.io")(4000);
var fetch = require("node-fetch");
var express = require("express");
var bodyParser = require("body-parser");

var app = express();

io.on("connection", (socket) => {
  socket.on("message", (msg) => {
    io.emit("message", msg);
  });
});

app.use(bodyParser.urlencoded({ extended: true }));

var stats = [];

app.post("/api", (request, response) => {
  var key = "E9BEFD12B99EF8838E61F7A74D9C6A4B";
  fetch(
    `http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=${key}&steamid=${request.body.user}`
  )
    .then((res) => res.json())
    .then((json) => response.send(json) | stats.push(json));
});

app.listen(3000, () => {
  console.log("server running");
});

这是客户端代码:

var socket = io("ws://localhost:4000/");

var send = () => {
  socket.emit("message", document.getElementById("message").value);
  document.getElementById("message").value = " ";
  return false;
};

socket.on("message", (msg) => {
  document.getElementById("messages").innerHTML = "<p>" + msg + "</p>";
});

每当我按下一个按钮时,就会执行发送功能。

1 个答案:

答案 0 :(得分:0)

要解决此问题,我刚刚从html文件中删除了表单标签,问题出在每次提交表单时,默认情况下刷新页面。