gpt4 book ai didi

Node.js socket.io 函数不在服务器和客户端之间发送

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

首先,我想对我的问题中的任何错误表示歉意,这是我的第一个 friend !

我正在尝试使用以下代码测试服务器和客户端之间的连接。

它的工作原理如下:在某个端口上启动套接字,然后客户端尝试在该端口上进行连接,连接部分成功,这意味着“node server.js”启动了连接,当我打开浏览器时到'localhost:8000'生成了html页面,但是当我单击按钮时什么也没有发生。

index.html代码

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
$(document).ready(function() {
var socket = io.connect("localhost:8000");
$("#join").click(function() {
var name = $("#name").val();
if (name != "") {
socket.emit("join", name);
}
});
socket.on("update", function(msg) {
$("#msgs").append("<li>" + msg + "</li>");
});
});
</script>
</head>
<body>
<input type="text" placeholder="Yor name" id="name">
<input type="button" name="join" id="join" value="Join!">
<ul id="msgs">
</ul>
</body>

server.js 代码

var fs = require('fs'),
http = require('http'),
sio = require('socket.io');

var server = http.createServer(function(req, res) {
res.writeHead(200, { 'Content-type': 'text/html'});
res.end(fs.readFileSync(__dirname + '/index.html'));
});
server.listen(8000, function() {
console.log('server is running');
});
var socket = sio.listen(server);

socket.on("connection", function (client) {
client.on("join", function(name) {
client.emit("update", name + "You have successfully sent your first message.");

});
});

最佳答案

你命名变量的方式让人困惑。您的代码中唯一的问题是这段代码:

socket.on('connection', handler);

应改为:

socket.sockets.on('connection', handler);

在大多数情况下,以及网站上的示例,EventEmitter通常被命名为 io.sockets 。就您而言,您所做的相当于 io.on('connection', handler);这就是它无法正常工作的原因。

关于Node.js socket.io 函数不在服务器和客户端之间发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18840382/

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