2014-12-26 20 views
0

在我的html文件,我寫這篇文章:如何處理400找不到「GET /socket.io/socket.io.js」?

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Socket.io - System Monitor</title> 
    <script src="javascripts/jquery.min.js" type='text/javascript'></script> 

</head> 
<body> 
<h1>Socket.io - System Monitor</h1> 
<script src="/socket.io/socket.io.js" type='text/javascript'></script> 
<script src="/javascripts/monitor.js" type='text/javascript'></script> 

<div id="node"> 
    <input type="text" id="host" name="host" value="http://localhost"/> 
    <input type="button" onclick="startup()" value="OK"/> 
</div> 

<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div> 

<script src="/javascripts/highcharts/highcharts.js" type='text/javascript'></script> 
<script src="/javascripts/highcharts/modules/exporting.js" type='text/javascript'></script> 
</body> 
</html> 

在服務器端,

var app = express(); 
// starting http servers 
var server = require('http').createServer(app); 
var io = require('socket.io').listen(server); 

server.listen(app.get('port'), function() { 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

我覺得每一件事情是對的,但是這是一個錯誤的404 not found「/socket.io/ socket.io.js」。

+0

該錯誤表示您的客戶端代碼中找不到socket.io.js文件。檢查是否存在與socket.io.js文件存在的'javascripts'文件夾相同級別的文件夾socket.io。 – Jay

+0

是的,知道錯誤的手段,但我已成功安裝socket.io。 – BlackMamba

+0

您將要從同一服務器提供/請求標記或指定完整的URL。以'/'開頭的路徑將使用與頁面相同的主機。 –

回答

0

嘗試使用此代碼。

var express = require('express'), 
app = express() 
, http = require('http') 
, server = http.createServer(app) 
, io = require('socket.io').listen(server); 

server.listen(8080); 
+0

你的解決方案是對的,但我有一些懷疑。我將''更改爲'' ,那麼我可以成功訪問'socket.io.js'。但爲什麼我不能使用端口'3000'? – BlackMamba

+0

另一個問題:Web服務器和socket.io可以使用相同的端口? – BlackMamba

+0

真誠地,我不知道它是否可能在同一個端口上運行https web服務器和套接字io服務器,所以我研究一點點,試圖找出你的問題,並找到這個http://stackoverflow.com/questions/ 24237184/how-to-configure-socket-io-to-on-on-same-port-on-https告訴我,如果作品 – Ethaan