我试图将socket.io添加到我的代码中,并且每当我在本地主机上运行网站时,以下失败的GET请求都会重复输出到控制台。
GET http://localhost:4000/socket.io/?EIO=3&transport=polling&t=MMNC8I9 0 ()
我不知道发送此请求的内容。套接字可以工作,尽管不完全符合我的预期*。
*我正在尝试构建一个可与多个客户端一起使用的实时应用程序,目前在任何给定时间仅更新一个客户端。在我仍在学习的过程中,我不确定这是否是正常行为,但是我想先解决失败的请求错误,然后再尝试解决!
如何解决此问题?预先谢谢你!
下面的代码:
server.js
const client=require("socket.io").listen(4040).sockets;
const app = express();
mongoose.connect('mongodb://localhost/<dbname>?replicaSet=rs');
mongoose.connect(config.db);
const db = mongoose.connection;
db.once("open", () => {
console.log(">>> ️ MongoDB: Connection successful");
app.listen(9000, () => {
console.log('Node server running on port 9000');
});
// Connect to Socket.io
client.on("connection", function(){
let queries = db.collection('queries');
// Create function to send status
sendStatus = function(s) {
socket.emit("status", s);
}
});
});
app.post('/query', (req, res, next) => {
<some code omitted>
doc.save()
.then(result => {
socket.emit("query", res);
res.send({
result
});
}
});
Queries.js
constructor(props) {
...
var socket = io.connect("http://localhost:4000/");
if (socket!= undefined) {
socket.on("query", function() {
this.loadQueries();
});
}
index.html
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js"></script>