Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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 HTML按钮按下不';t向socket.io发送调用_Javascript_Html_Socket.io - Fatal编程技术网

Javascript HTML按钮按下不';t向socket.io发送调用

Javascript HTML按钮按下不';t向socket.io发送调用,javascript,html,socket.io,Javascript,Html,Socket.io,我正在尝试将HTML页面连接到Socket.IO。虽然我有面向对象语言方面的经验,但到目前为止,web对我来说是一个全新的、相当令人沮丧的东西。我有一个socket.io服务器正在运行,可以从C#调用它并相应地接收响应。然而,现在我需要将它连接到一个HTML页面,这是不工作的 我已尝试应用以下三个站点的代码: 然而,它们甚至都没有显示“用户连接”消息,即使是按字面意思复制粘贴 我编写的JS代码如下: var app = require('express')(); var http = requ

我正在尝试将HTML页面连接到Socket.IO。虽然我有面向对象语言方面的经验,但到目前为止,web对我来说是一个全新的、相当令人沮丧的东西。我有一个socket.io服务器正在运行,可以从C#调用它并相应地接收响应。然而,现在我需要将它连接到一个HTML页面,这是不工作的

我已尝试应用以下三个站点的代码:

然而,它们甚至都没有显示“用户连接”消息,即使是按字面意思复制粘贴

我编写的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连接
var socket=io();
函数ClickLeft(){
socket.emit('MOVE_LEFT');
}
函数ClickRight(){
socket.emit('MOVE_RIGHT');
}
函数clickshot(){
socket.emit('shot');
}
你好,世界
链接
记录
喵喵喵
io.attach(4567)我的C#代码找不到websocket,但是如果我尝试将此端口也用于HTML,则会出现io错误(
EADDRINUSE:address ready in use:::3000


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

在浏览器的开发人员工具中打开控制台

您应该会看到一个错误,告诉您
io
未定义

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



您必须在客户端使用
socket.io客户端
,并且必须首先连接到服务器。
<script src = "/socket.io/socket.io.js"></script>