![](/img/trans.png)
[英]GET http://localhost:8563/socket.io/?EIO=3&transport=polling&t=NEsUPis 404 (Not Found)
[英]GET http://localhost/socket.io/?EIO=3&transport=polling&t=LjIvLGU 404 (Not Found)
我的 Nodejs 和我的 js 代碼有問題。
當我在控制台服務器中運行 Nodejs 時沒有顯示任何問題,但我一直在 Chrome 控制台中收到錯誤消息:
GET http://localhost/socket.io/?EIO=3&transport=polling&t=LjIvLGU 404 (Not Found)
索引.html
<head>
<title>test</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
</head>
腳本.js
var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io').listen(server);
users = [];
connections = [];
server.listen(process.env.PORT || 3000);
console.log("server up");
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.php');
});
io.sockets.on('connection', function (socket) {
socket.on('subscribe', function (data) {
socket.join(data.room);
});
socket.on('arriv', function (data) {
console.log(data);
io.sockets.in('invitor').emit('send message',data);
});
socket.on('unsubscribe', function (data) {
socket.leave(data.room);
});
});
用戶.js
$(function () {
var cid = $.session.get('company');
console.log(cid);
var socket = io.connect();
socket.emit("subscribe", {room: "invitor"});
socket.on("send message", function (data){
$('#info').append("" + data.gid + "</br>");
});
$(document).on('click', '.123', function () {
var gid = $(this).attr('id');
socket.emit('arriv', {gid: gid});
});
});
您似乎正在嘗試通過 localhost 連接其他地方的套接字,而沒有端口 3000。如果我測試您的代碼片段,一切正常。 您的錯誤消息顯示端口 3000 丟失" GET http://localhost/socket.io/?EIO=3&transport=polling&t=LjIvLGU 404 (Not Found)"
。
如果您將 io.connect 更改為var socket = io.connect('http://localhost:3000');
您可以嘗試手動連接var socket = io.connect('http://localhost:3000');
“ GET http://localhost/socket.io/?EIO=3&transport=polling&t=LjIvLGU 404 (Not Found)” 表示您的 socket.io 沒有監聽您想要的服務器。 我的錯誤是我實例化了錯誤的服務器對象。
在 app.js 文件中
var server = app.listen(config.dev.port, () => {
console.log("Listening ..");
});
var io = require('socket.io').listen(server);
經過大量搜索,這是有效的:
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io('http://localhost:3000/');
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.