2013-10-26 460 views
0

我已經花了整整一天的時間在我的第一個應用程序中使用了帶有Node和Express的socket.io,我似乎無法在客戶端找到我的socket.io.js文件。我已閱讀過許多關於此問題的SO問題和其他論壇,但似乎無法讓我使用任何推薦的解決方案。在客戶端包含Socket.io

我已經成功安裝了express和socket.io,並且在服務器端一切都正常工作(目前只是使用Twitter Stream Api工作)。現在我想在客戶端使用來自emit的數據,我需要包含我的套接字文件。

我已經將HoganJS設置爲我的視圖引擎。

這裏是我的app.js文件的摘錄:

app.set('port', process.env.PORT || 3000); 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'hjs'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.bodyParser()); 
app.use(express.methodOverride()); 
app.use(express.cookieParser('your secret here')); 
app.use(express.session()); 
app.use(app.router); 
app.use(require('less-middleware')({ src: path.join(__dirname, 'public') })); 
app.use(express.static(path.join(__dirname, 'public'))); 

我有一個名爲index.js另一個文件,該文件是我的Twitter和插座代碼,這是我需要的行:

var twitter = require('ntwitter'); 
var io = require('socket.io').listen(3001, {log: false}); 
// all my twitter setup/functions etc here 
io.sockets.emit('tweets' ,data); 

現在在客戶端,我嘗試了所有可能的途徑,包括:

<script src="localhost:3000/socket.io/socket.io.js"></script> 
<script src="socket.io/socket.io.js"></script> 

還有很多其他途徑試圖找出如何正確鏈接它。如果這是顯而易見的或在其他地方回答,我非常抱歉,但我找不到它。

根據chrome開發工具,我可以在404中找到任何結果。

非常感謝!

+0

你說的腳本SRC .js文件是那些404?如果是這樣,你嘗試了一個空白的HTML文件,只有這些行,看看你是否得到相同的錯誤? – acutesoftware

回答

1

既然你在3001端口上運行socket.io

<script src="http://localhost:3001/socket.io/socket.io.js"></script> 

但你也可以在同一個端口上運行socket.io和快遞在一起:你

var express = require('express'); 
var app  = express(); 
var server = app.listen(3000); 
var io  = require('socket.io').listen(server); 
+0

非常感謝!不能相信我錯過了,你是一個拯救生命的哈哈:) – Markydtt

0

檢查是否有文件socket.io.js與否。

node_modules -> socket.io -> socket.io.js

檢查如果是的話那就試試這個路徑

​​