[英]GET 404 (File not found) and net::ERR_CONNECTION_REFUSED from socket.io
我知道類似的問題已在此之前發布過。 但是我已閱讀並嘗試了所有建議的解決方案,但仍無法正常工作。
我正在嘗試使用socket.io連接兩個設備。 但是每次我得到這個錯誤:
GET http:// localhost:4444 / socket.io /?EIO = 3&transport = polling&t = LZkz-Kk 404(找不到文件)polling-xhr.js:261
Request.create @ polling-xhr.js:261
請求@ polling-xhr.js:166
XHR.request @ polling-xhr.js:93
XHR.doPoll @ polling-xhr.js:123
Polling.poll @ polling.js:118
打開@ polling.js:63
Transport.open @ transport.js:80
Socket.open @ socket.js:240
套接字@ socket.js:119
套接字@ socket.js:29
Manager.open.Manager.connect @ manager.js:213
經理@ manager.js:68
經理@ manager.js:37
查找@ index.js:60
socketSetup @ sketch.js:9
初始化@ sketch.js:69
然后總是會出現該錯誤,但是我想這是一個問題,因為它找不到我的文件,對嗎?
GET http:// localhost:4444 / socket.io /?EIO = 3&transport = polling&t = LZk-142 net :: ERR_CONNECTION_REFUSED polling-xhr.js:261
我嘗試了各種不同的方式來對我在網上遇到的socket.io文件進行SRC的處理,這些是一些示例:
< script type="text/javascript" src="http://localhost:4444/socket.io/socket.io.js">< /script ><br>
< script type="text/javascript" src="http://myipadress:4444/socket.io/socket.io.js">< /script ><br>
< script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.2/socket.io.js">< /script ><br>
< script type="text/javascript" src="/socket.io/socket.io.js">< /script><br>
< script src="libraries/socket.io.js">< /script><br>
< script type="text/javascript" src="/node_modules/socket.io-client/dist/socket.io.js">< /script>
基本上,它們都會給我相同的錯誤,除非我不使用SRC,因為有些人說不需要暗示套接字鏈接。 在這種情況下,我得到:
未捕獲的ReferenceError:未定義io(...)sketch.js:9 socketSetup @ sketch.js:9
初始化@ sketch.js:69
這是我的服務器端app.js:
var express = require('express');<br>
var app = express();<br>
var PORT = 4444;<br>
// Routing<br>
app.use('/', express.static(__dirname + '/public'));<br>
// Socket.io setup<br>
var server = require('http').createServer(app);<br>
var io = require('socket.io')(server);<br>
server.listen(PORT, function(){<br>
console.log('Server listening at port ' + PORT);<br>
});<br>
<br>
io.on('connection', function(socket) {<br>
A bunch of my io code.<br>
)};
這是我的index.html代碼:
< !DOCTYPE html><br>
< html><br>
< head><br>
< meta charset="UTF-8"><br>
< link rel="stylesheet" href="css/style.css"><br>
< /head><br>
<br>
< body><br>
<br>
< script type="text/javascript" src="http://localhost:4444/socket.io/socket.io.js">< /script><br>
< !-- < script type="text/javascript" src="/socket.io/socket.io.js">< /script>-- ><br>
< script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.5/p5.js">< /script><br>
< script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.5/addons/p5.dom.js">< /script><br>
< script type="text/javascript" src="libraries/jquery-min.js">< /script><br>
< script type="text/javascript" src="sketch.js">< /script><br>
< /body><br>
< /html><br>
package.json
{
"name": "public",
"version": "1.0.0",
"description": "Test",
"main": "index.html",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "kim",
"license": "ISC",
"dependencies": {
"express": "^4.14.0",
"socket.io": "^1.7.2"
}
}
這是我的客戶端sketch.js的重要部分:
var app = app || {};
app.main = (function() {
var socket;
var socketSetup = function(callback){
console.log('Called socketStart.');
socket = io.connect();
socket.on('movement', function(data) {
Socket listeners..
}
);
callback();
}
var init = function(){
console.log('Initializing app.');
//var myp5 = new p5(sketch, 'canvas-container');
socketSetup(sketch);
};
return {
init: init
};
})();
window.addEventListener('DOMContentLoaded', app.main.init);
我嘗試了一些不同的設置,但是從邏輯上講應該可以工作嗎?^^
最后,這是我的項目結構:
app.js
package.json
node_modules
public
sketch.js
index.html
css
libraries
我什至嘗試在公共文件夾中本地npm install socket.io安裝,但這也不起作用。
有人可以看到我在做什么嗎? 有沒有我未曾嘗試過的東西嗎? 什么為您工作?
抱歉,這么長的帖子,我只是想清除一下我嘗試過的內容,以避免不必要的答案。 我什至嘗試卸載並刪除所有節點和npm文件,然后重新安裝所有文件。
您可能要從以下簡單設置開始:
服務器:(您的代碼幾乎不變)
var express = require('express');
var app = express();
var PORT = 4444;
// Routing
app.use('/', express.static(__dirname + '/public'));
// Socket.io setup
var server = require('http').createServer(app);
var io = require('socket.io')(server);
server.listen(PORT, function(){
console.log('Server listening at port ' + PORT);
});
io.on('connection', function(socket) {
console.log('a client has connected');
});
/public/index.html
<!doctype html>
<html>
<head>
<title>Testing socket.io</title>
</head>
<body>
<h1 id="socketio"> not connected </h1>
<script src="socket.io/socket.io.js"></script>
<script src="sketch.js"></script>
</body>
</html>
/public/sketch.js
var socket = io();
socket.on('connect', function() {
document.getElementById("socketio").innerHTML = "socket connected";
});
server.js
文件中, public/index.html
文件中 public/sketch.js
文件中, npm install
, node server
啟動node server
它應該工作,然后您可以在其上構建更多內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.