2016-11-26 26 views
0

我剛剛創建了一個使用express來設置服務器的socket.io工作示例聊天程序。就像它在socket.io網頁上描述的一樣。使用javascript連接到另一個網絡中的node.js socket.io服務器

當用瀏覽器連接到IP地址時,客戶端Html文件被髮送到客戶端。

var express = require("express"), 
app = express(), 
server = require("http").createServer(app), 
io = require("socket.io").listen(server), 
mongoose = require("mongoose"), 
users = {}; 

server.listen(3000, function(){ 
console.log("Server erfolgreich initialisiert!");}); 

app.get("/", function(req, res) { 
res.sendFile(__dirname + "/index.html");}); 

但我想客戶的Index.html連接到服務器本身,而不是由服務器端發送。以HttpRequest作爲握手或無論如何。我在socket.io網頁上找不到任何東西,因此我懷疑它甚至是可能的。或者是我已經工作的代碼,我只需要改變別的東西?

我感謝您的幫助!

+0

我不知道你的意思。你能舉個例子嗎?你想在這裏做什麼? – SpiderPig

+0

我的目標是通過腳本連接到我的「服務器」,而不是在瀏覽器中編寫地址。我需要它,因爲我的客戶是移動JavaScript應用程序,而不僅僅是瀏覽器頁面。示例:客戶端已啓動,我希望它連接到我的websocket服務器。服務器不在網絡中,我想通過URL尋址。 – Milanisius

回答

1

我得到了答案!我其實只是失敗了。我只是被一些錯誤的信息和一些錯誤所困惑。一個簡單的

var socket = io.connect("http://199.91.38.266:3000"); 

已經工作。 (當然,隨機IP)

當然必須有socket.io框架包括:

<script src="http://199.91.38.266:3000/socket.io/socket.io.js"></script> 
+0

你能否請多解釋一下。我有同樣的問題。我在我的文件上使用localhost:3000,但它不起作用。我需要使用公共IP嗎? – Rex

+0

你必須使用你的公共IP。我認爲你必須轉發你使用的端口。 – Milanisius

相關問題