2012-07-25 48 views
0

我正在嘗試製作互聯網電話開關。基本上,當某人按下手機上的某個特定按鈕時,它會對我的網站發出GET調用,並且GET調用會通過socket.IO觸發一個與網站連接的所有人都可以看到的事件。在nodejs中無法使用互聯網電話獲取套接字-IO連接

我得到的GET調用就好了,我的服務器注意到它很好。但是因爲手機無法呈現網頁,所以我無法啓動它來觸發事件。如果我只有兩臺不同的電腦和兩臺瀏覽器,一切都按我的意願工作。

當我渲染一個頁面時,我在我的「layout.jade」這個代碼上觸發了一個事件,如果你在正確的頁面。

var socket = io.connect('http://MYWEBPAGE.org:3000'); 
    socket.on('connect', function() { 
     if ($('title')[0].text == "IMC_log") { 
      socket.emit('server_call'); 
     } 
    }); 
    socket.on('call', function() { 
     console.log("CALL HERE"); 
    }); 

而且在server.js我

io.sockets.on('connection', function (socket) { 
    socket.on('server_call', function() { 
     socket.broadcast.emit('call'); 
    }); 
}); 

只需使用瀏覽器工作原理。但是現在,當我使用手機時,它不會觸發「server_call」事件,因爲(可能)它無法呈現頁面,因此它實際上從未實際使用「layout.jade」。 但是,因爲它的GET調用就好了,我希望能夠從我的server.js文件(或index.js,都很好)發射該事件,唉,我不知道該怎麼做。如果我試圖像這樣開除它:

app.get ("/log_get", function() { 
    socket.broadcast.emit('call'); 
}); 

它只是在聲明該套接字未定義。問題似乎是它需要有io.sockets.on('連接',函數(套接字){...爲了能夠識別「套接字」,但我不能這樣做,因爲我已經有一個「連接時」在那裏。

幫助表示讚賞!

回答

0

NPM模塊socket.io客戶端做的工作。