gpt4 book ai didi

javascript - 客户端未从 socket.io 中的服务器接收消息

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

我的服务器想要向客户端发送连接消息。然后客户端向服务器发送消息。

当客户端向服务器发送消息时,我的代码工作正常但客户端未收到服务器应在连接上发送的初始消息。

这是我的小代码:)

服务器

var app = require('http').createServer(handler),
io = require('socket.io').listen(app, { log: false }),
fs = require('fs');

app.listen(8001);

function handler(req, res) {
fs.readFile(__dirname + '/client1.html', function(err, data) {
if (err) {
console.log(err);
res.writeHead(500);
return res.end('Error loading client1.html');
}
res.writeHead(200);
res.end(data);
});
}

io.sockets.on('connection', function (socket) {
console.log("running time");
socket.emit("serverMessage","server says hi");

socket.on('clientMessage', function () {
console.log("client message recieved");
});
});

客户端

 <html>
<head>
<script src="/socket.io/socket.io.js"></script>
<script>
socket = io.connect("http://localhost:8001");
socket.on('connection', function(socket) {
socket.on("serverMessage", function(d) {
console.log("server send a message ");
});
});
function send() {
socket.emit('clientMessage', "Test Message From Client");
}
</script>
</head>

<body>
<button onclick="send()" >send</button>

</body>

请问有什么帮助吗?

最佳答案

您的客户端代码中有一个简单的错误。客户端没有名为 connection 的事件。相反,名称是connect。在客户端中执行此操作:

<script>
socket = io.connect("http://localhost:8001");
</script>
<script>
socket.on('connect', function(socket) {
socket.on("serverMessage", function(d) {
// you can alert something here like alert(d)
console.log("server send a message ");
});
});
</script>

关于javascript - 客户端未从 socket.io 中的服务器接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22450497/

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