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