Node.js socketio客户端没有';t接收到NodeJS发出的消息

Node.js socketio客户端没有';t接收到NodeJS发出的消息,node.js,socket.io,Node.js,Socket.io,[已解决] 问题:socket.io版本 说明:该设备不工作。机器正在运转 ==来源问题 我创建了一个简单的socketio服务器=>客户端连接,如下所示,并将“client connected[id=Uen6E2T9OCJOCpy2AAAI]”作为客户端连接。但是客户端没有收到服务器发出的消息。请帮帮我 ==已更新 完整的源代码 现在我意识到,套接字只是握手,但服务器和客户端既不发送也不接收对方。我怎样才能解决它 server.js var app = require("expre

[已解决]

问题:socket.io版本

说明:该设备不工作。机器正在运转

==来源问题

我创建了一个简单的socketio服务器=>客户端连接,如下所示,并将“client connected[id=Uen6E2T9OCJOCpy2AAAI]”作为客户端连接。但是客户端没有收到服务器发出的消息。请帮帮我

==已更新

完整的源代码

现在我意识到,套接字只是握手,但服务器和客户端既不发送也不接收对方。我怎样才能解决它

server.js

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

/* Creating POOL MySQL connection.*/



var pool = mysql.createPool({
    connectionLimit: 100,
    host: host,
    user: user,
    password: password,
    database: database,
    debug: false
});


/*  This is auto initiated event when Client connects to Your Machien.  */

io.on('connection', function (socket) {
    var hs = socket.handshake;
    console.log(hs);
    console.log('A socket with sessionID ' + hs  + ' connected!');
    console.info(`Client connected [id=${socket.id}]`);

    socket.on('status added', function (status) {
        add_status(status, function (res) {
            if (res) {
                io.emit('refresh feed', status);
            } else {
                io.emit('error');
            }
        });
    });
});

var add_status = function (status, callback) {
    pool.getConnection(function (err, connection) {
        if (err) {
            callback(false);
            return;
        }
        connection.query("INSERT INTO `status` (`s_text`) VALUES ('1');", function (err, rows) {
            connection.release();
            if (!err) {
                callback(true);
            }
        });
        connection.on('error', function (err) {
            callback(false);
            return;
        });
    });
}

http.listen(3000, function () {
    console.log("Listening on 3000");
});
client.html

<html>
<head>
    <title>Socket.io</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.0.4/socket.io.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
    <script>
        $(document).ready(function () {
            var socket = io('localhost:3000');
            $("#add_status").click(function () {
                socket.emit('status added', $("#comment").val());
            });
            socket.on('refresh feed', function (msg) {
                $("#show_comments").append(msg + '<br /><br />');
            });
        });
    </script>
</head>
<body>
<div id="comment_box" style="padding:5%;">
    <textarea id="comment" rows="5" cols="70"></textarea><br/><br/>
    <input type="button" id="add_status" value="Add Status">
</div>
<div
        id="show_comments"
        class="jumbotron"
        style="width: 38%;
                height: 100%;
                padding: 2%;
                margin-left:5%;
                margin-top:-53px;"
>
</div>
</body>
</html>

您需要将HTTP服务器传递到socket.io

let io = require('socket.io').listen(http); // incorrect
使用:

最后,希望您在客户端html中包含socket.io-client库。使用本地目录中的CDN或相对路径

<script src="https://cdn.socket.io/socket.io-3.0.1.min.js"></script>
<script>
     const socket = io.connect('localhost:8085');
     socket.on('Welcome', function (data) {
         console.log(data);
     });
</script>


您需要将HTTP服务器传递到socket.io

let io = require('socket.io').listen(http); // incorrect
使用:

最后,希望您在客户端html中包含socket.io-client库。使用本地目录中的CDN或相对路径

<script src="https://cdn.socket.io/socket.io-3.0.1.min.js"></script>
<script>
     const socket = io.connect('localhost:8085');
     socket.on('Welcome', function (data) {
         console.log(data);
     });
</script>


我试图复制它,但我坚持第4行。让io=require('socket.io').listen(http)生成类型错误侦听不是function@Alex,我更新了完整的源代码。这个项目在github上吗?然后我将克隆itI。我发现了问题并更新了原始问题。新年快乐!!!我试图复制它,但我坚持第4行。让io=require('socket.io').listen(http)生成类型错误侦听不是function@Alex,我更新了完整的源代码。这个项目在github上吗?然后我将克隆itI。我发现了问题并更新了原始问题。新年快乐!!!谢谢你的回答,我有些问题。当我使用“”时,我遇到了与“”相同的问题。但当我使用“”时,没有“错误握手”错误。但没什么变化。谢谢你的回答。我发现了问题并更新了原始问题。新年快乐!!!谢谢你的回答,我有些问题。当我使用“”时,我遇到了与“”相同的问题。但当我使用“”时,没有“错误握手”错误。但没什么变化。谢谢你的回答。我发现了问题并更新了原始问题。新年快乐!!!
let io = require('socket.io')(http, {
    cors: {
        origin: "*", // Be careful with * 
    }
});