gpt4 book ai didi

javascript - Socket.io版本2.1.0错误404

转载 作者:行者123 更新时间:2023-12-01 02:03:22 25 4
gpt4 key购买 nike

我使用socket.io最新版本发现了这个错误:“index.js: 83 POST http://localhost/socket.io/? EIO = 3 & Transport = polling & t = MDUHEO9 404 (Not Found)”。我明白原因了:真实地址一定是http://localhost:3000/socket.io/。你知道我该如何纠正吗?

我读过很多讨论,但没有人有适合 2.1.0 版本的解决方案,即使在讨论中我读到降级提案,我也想避免它。

客户端.js:

<script src="http://localhost:3000/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(function () {
var socket = io().connect('http://localhost:3000');
$('form').submit(function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
});
});
</script>

服务器.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');
});

io.on('connection', function(socket){
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
});

最佳答案

更改此:

var socket = io().connect('http://localhost:3000');

对此:

var socket = io.connect('http://localhost:3000');

或者这个:

var socket = io('http://localhost:3000')

最后两个都是相同的。

<小时/>

您将只想使用一种形式的连接,io(...)io.connect(...),而不是同时使用两者。当您仅调用 io() 时,您会尝试连接到默认 URL,该 URL 将是当前网页的 URL,然后当您尝试执行 .connect() 时 之后,您将尝试再次连接。您只需要一个连接并连接到指定的 URL。

关于javascript - Socket.io版本2.1.0错误404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50328778/

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