2013-08-23 142 views
3

我已經成功地做了一個回調函數http://socket.io當客戶端調用服務器
Socket.io服務器端回調

socket.on('event', function(data, fn){ fn(null, true); } 

我在想,如果有可能做同樣的,但這次,當調用服務器客戶端?

+2

我認爲everthing在這裏解釋 - > http://socket.io/#how-to-use –

+0

我以前讀過這個頁面,它解釋了當客戶端調用服務器時如何回調,而不是相反。我正在搜索服務器調用客戶端時是否可以這樣做。 – Louis

+0

你想發送一個函數給客戶端來運行嗎? – Todilo

回答

1

emiton在雙方工作完全相同:客戶端和服務器。
因此,如果您發送到服務器端的客戶端套接字,那麼如果在客戶端您訂閱了該事件,它將觸發它。反之亦然。

你對此感到困惑的是服務器有一個套接字正在監聽一個套接字,並且每個客戶端有多個套接字連接。

雖然客戶端只有一個套接字與服務器交談。

這裏的示例:http://socket.io/#how-to-use
做雙向消息,你需要清楚地閱讀它們,然後否認沒有雙向消息傳遞。

+0

這並不是他所問的。他正在討論將回調函數作爲參數發送給'emit'。網站上的文檔只顯示了一個回調被傳遞給執行它的服務器。他問他是否可以做相反的事情,並從服務器*發送一個回叫*到要執行的客戶端。 – Chev

+0

我的不好,我現在看到有這樣的功能。儘管爲您的特定需求創建自己非常容易。 你會建議刪除這個答案嗎? – moka

+0

[我不知道「非常容易」。](https://github.com/LearnBoost/socket.io/issues/1444) – Chev