gpt4 book ai didi

javascript - 按下 HTML 按钮不会向 socket.io 发送调用

转载 作者:行者123 更新时间:2023-12-02 22:45:39 27 4
gpt4 key购买 nike

我正在尝试将 HTML 页面连接到 Socket.IO。尽管我有面向对象语言的经验,但到目前为止,网络对我来说还是个新鲜事物,而且相当令人沮丧。我已经运行了一个 socket.io 服务器,可以从 C# 调用它并相应地接收响应。但是,现在我需要将其连接到 HTML 页面,但该页面不起作用。

我尝试过从这三个站点应用代码: 奥 git _a 奥 git _a Socket.io emit button press to all clients

但是,即使是直接复制粘贴,它们也不会显示“用户已连接”消息。

我写的JS代码是这样的:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');
});

var client;

//Whenever someone connects this gets executed
io.on('connection', function(socket) {
console.log('A user connected');

//Whenever someone disconnects this piece of code executed
socket.on('disconnect', function () {
console.log('A user disconnected');
});

socket.on('SERVER_CONNECTED', function () {
console.log('SERVER_CONNECTED');
client = socket.id;
io.sockets.connected[client].emit("SERVER_REGISTERED");
});

socket.on('MOVE_LEFT', function () {
console.log('MOVE_LEFT');
});

socket.on('MOVE_RIGHT', function () {
console.log('MOVE_RIGHT');
});

socket.on('SHOOT', function () {
console.log('SHOOT');
});
});

http.listen(3000, function() {
console.log('listening on *:3000');
});

io.attach(4567);

HTML 代码:

<!doctype html>
<html lang="en">
<head>
<title>Socket IO Connection</title>
<script>
var socket = io();

function ClickLeft() {
socket.emit('MOVE_LEFT');
}

function ClickRight() {
socket.emit('MOVE_RIGHT');
}

function ClickShoot() {
socket.emit('SHOOT');
}
</script>
</head>
<body>
hello world
<button type="button" onclick="ClickLeft()">Links</button>
<button type="button" onclick="ClickRight()">Rechts</button>
<button type="button" onclick="ClickShoot()">PIEW PIEW</button>
</body>
</html>

如果没有 io.attach(4567);,我的 C# 代码找不到 websocket,但是如果我尝试将此端口用于 HTML,则会收到 io 错误 ( EADDRINUSE:地址已在使用:::3000)。

所以,总结一下;为什么 HTML 不连接/发送数据到套接字?

最佳答案

在浏览器的开发者工具中打开控制台。

您应该看到一条错误,告诉您 io 未定义。

您错过了链接到的教程中的这一部分:

<script src = "/socket.io/socket.io.js"></script>

关于javascript - 按下 HTML 按钮不会向 socket.io 发送调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58414002/

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