我正在嘗試製作互聯網電話開關。基本上,當某人按下手機上的某個特定按鈕時,它會對我的網站發出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('連接',函數(套接字){...爲了能夠識別「套接字」,但我不能這樣做,因爲我已經有一個「連接時」在那裏。
幫助表示讚賞!