我的問題很簡單我實際上遇到錯誤404試圖在我的網頁上導入socket.io。我正在使用nodejs socket.io GET http://domain/socket.io/?EIO = 3&transport = polling&t =導入socket.io時的LrTVonQ狀態404爲
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
要導入socket.io。
如果我從頭標記中刪除此行,我很好,但是當它在那裏時,我在開發工具中看到404錯誤,而且我的計數器甚至沒有工作。
我想爲我的網站之一做一個實時查看器計數,但我從來沒有真正使用Node.js,所以這就是爲什麼我有一些麻煩。如果我的腳本中有錯誤,請原諒我。
對於服務器端腳本,文件名爲:viewercounter.js這是代碼
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var port = 8001;
server.listen(port, function() {
console.log('Server listening at port %d', port);
});
app.use(express.static(__dirname + '/public'));
var count = 0
io.on('connection', function(socket) {
count++;
socket.broadcast.emit('userupd', {
numUsers: count
});
console.log(count);
socket.on('disconnect', function(){
count--;
socket.broadcast.emit('userupd', {
numUsers: count
});
console.log(count);
});
});
然後我直接在我的網頁上放置的,而不是做一個新的文件中客戶端腳本,我真的不看到它的重點。無論如何,該文件被稱爲:index.php 和代碼是在身體標記結束之前的文件的末尾,代碼前沒有其他js。
<script type="text/javascript">
$(function() {
var socket = io();
socket.on('userupd', function (data) {
$('.counter').html(data);
});
});
編輯
通過尋找更深刻,我一直搞不明白,這是一個XMLHttpRequest的問題。事實上,當我剛剛導入的socket.io代碼試圖執行xhr.send(this.data)時,出現錯誤。任何人都知道我能如何解決這個問題 https://gyazo.com/53f64081a92b449e157df76c6c570178
EDIT2
在文件viewcounter.js更改端口後。它看起來像這樣:
// Setup basic express server
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var port = 80;
server.listen(port, function() {
console.log('Server listening at port %d', port);
});
// Routing
app.use(express.static(__dirname + '/public'));
var count = 0
io.on('connection', function(socket) {
count++;
socket.broadcast.emit('userupd', {
numUsers: count
});
console.log('New user: ');
socket.on('disconnect', function(){
count--;
socket.broadcast.emit('userupd', {
numUsers: count
});
console.log('Neg user:');
});
});
那麼,URL https:// cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js'完全可以在這裏使用。所以,如果你在這個確切的網址上得到404,那麼在你看的時候或者是你的網絡問題,或者你誤解了給你一個404的東西。那個網址出現了對我工作很好。您需要'socket.io.js',因爲這是使socket.io在瀏覽器中工作的socket.io庫。 – jfriend00
我仍然收到錯誤消息。因此,我認爲這是我的結局中的網絡問題。但是,這將是非常奇怪的,因爲我使用的是在OVH購買的vps ...換句話說,我確信它會在URL上收到404錯誤。 https://gyazo.com/7760940ba93dce354a06c28993c076fb – Willbill360
你的404似乎在這個URL上,http://goldenvision.ml/socket.io/?EIO = 3&transport = polling&t = LrVsppJ'這是一個嘗試啓動socket.io從客戶端連接到服務器。這意味着服務器未正確偵聽該主機和端口上的socket.io連接。它肯定在我看來像你的404 URL試圖在端口80上建立socket.io連接,但是你的服務器正在監聽端口8080.當你在客戶端執行'var socket = io();'時,什麼是該代碼位於的客戶端網頁網址?瀏覽器欄顯示哪些頁面的活動URL? – jfriend00