我试图用socket.io
创建一个非常简单的聊天系统这是我的HTML代码:
car_id
在提交表单时调用此代码:
<body>
<div id="messages"></div>
<form action="" id="form" autocomplete="off" onsubmit="event.preventDefault(); myScript();">
<input id="m" autocomplete="off" /><button>Send</button>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js"></script>
<script src="client.js"></script>
</body>
第一次输入信息时,会显示一次。第二次,消息显示两次,第三次消息显示三次,依此类推。
出于某种原因,var person = prompt("Please enter your name", "Name");
function myScript(){
var socket = io();
socket.emit('chat message', person+":"+document.getElementById("m").value);
document.getElementById("m").value = "";
socket.on('chat message', function(msg){
var messages = document.getElementById('messages');
messages.insertAdjacentHTML('beforeend', '<div>'+msg+'</div>');
});
}
被执行多次,我无法理解为什么
这是服务器代码:
socket.on('chat message', function(msg){
请帮忙吗?
由于
答案 0 :(得分:0)
知道了!
前端js:
var person = prompt(“请输入你的名字”,“姓名”); var socket = io();
function myScript(){
socket.emit('chat message', person+":"+document.getElementById("m").value);
document.getElementById("m").value = "";
}
socket.on('chat message', function(msg){
var messages = document.getElementById('messages');
messages.insertAdjacentHTML('beforeend', '<div>'+msg+'</div>');
});
socket.on('chat message'
不应该进入提交功能。
由于