Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 页面重新加载后消息消失_Javascript_Node.js_Socket.io - Fatal编程技术网

Javascript 页面重新加载后消息消失

Javascript 页面重新加载后消息消失,javascript,node.js,socket.io,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

我创建了一个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>";
});
var socket=io(“ws://localhost:4000/”;
var send=()=>{
socket.emit(“message”,document.getElementById(“message”).value);
document.getElementById(“消息”).value=“”;
返回false;
};
socket.on(“消息”,(消息)=>{
document.getElementById(“消息”).innerHTML=“”+msg+”

”; });

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

为了解决这个问题,我刚从html文件中删除了表单标记,问题是每次提交表单时,页面都会默认刷新。

我猜您按下的按钮是在表单中,它会触发默认操作,因此,重新加载相同的页面,正如@Seblor所说的,您应该发布页面的HTML。这可能就是问题所在。这能回答你的问题吗?(或)@Seblor我从html中删除了表单标签,现在它可以工作了,谢谢mate@DCAdarko你应该把你的答案写下来,以防有人后来通过谷歌找到你的问题