2015-03-03 146 views
0

我正在創建一個nodejs + express + socket.io服務器。客戶端的Socket.IO

此外,我通過yeoman爲我的前端應用程序創建了一個腳手架。

的socket.io服務器在端口3000和9000。

我已成功使用檢索來自socket.io服務器socket.io.js我自耕農支架HTTP服務器

<script type="text/javascript" src="http://localhost:3000/socket.io/socket.io.js"></script> 

但是即時通訊有此錯誤:

GET http://localhost:9000/socket.io/?EIO=3&transport=polling&t=1425392110184-42 404 (Not Found) 

爲什麼是在端口9000 socket.io.js投票? 此外,我怎樣才能改變這個,讓它在3000上輪詢呢?

+0

刪除'HTTP://本地主機:3000'從腳本'src' – ashley 2015-03-03 14:20:11

+0

我高度懷疑,這不是問題。如果我刪除它,那麼我無法從socket.io服務器獲取客戶端腳本。 – Adr 2015-03-03 14:22:04

+0

您有客戶端問題。你可以創建自己的套接字連接:'var socket = new io.Socket(); socket.connect('http://127.0.0.1:3000');' – 2015-03-03 14:24:36

回答

0

socket.io客戶端接受一個選項URL參數。如果未指定,則將使用當前文檔來源進行連接。這意味着如果HTML文檔的URL是http://localhost:9000,那麼它將連接到http://localhost:9000。指定它,當你連接:

var socket = io('http://localhost:3000'); 

而不是

var socket = io(); 
+0

是的,我已經想通了。不管怎麼說,還是要謝謝你! – Adr 2015-03-03 14:41:07

0

好吧,我解決它通過傳遞socket.io的URL作爲參數傳遞給io()功能。

var socket = io('http://localhost:3000');