2015-12-27 39 views
1

做到這一點的,你可以通過下面的服務器端代碼更新事件Backand:如何只收聽併發送特定項目的實時更改?

function backandCallback(userInput, dbRow, parameters, userProfile)  
{ 
    socket.emitAll("items_updated", userInput); 
} 

然後在角客戶端代碼,你可以通過執行偵聽此事件,將事件發送到所有連接的用戶的文檔以下

Backand.on('items_updated', function (data) { 
    //Get the 'items' object that have changed 
    console.log(data); 
}); 

我正在與匿名用戶,我不能使用emitUsers或emitRoles來限制只有關心的用戶。

因爲我不想讓所有的匿名用戶都收到所有的更新事件,但只有他們所在的項目(愚蠢的聽更新,你不在乎是不是!), 會有一種只聽特定項目事件的方法?

感謝您的幫助

回答

4

其實我已經找到了解決辦法感謝Backand輝煌的支持團隊(感謝伊泰!)。

解決方法很簡單,你可以玩事件名字符串!

回到我的例子,比方說,我只希望用戶聽他的實際觀看的項目變化(項目編號爲57爲例),該代碼,然後將是:
- 服務器上的代碼方面

function backandCallback(userInput, dbRow, parameters, userProfile)  
{ 
    //if the updated item has an id=57 for example, 
    //the event emitted will be "items_updated_57" 
    socket.emitAll("item_updated_" + dbRow.id, userInput); 
} 

- 對角客戶端代碼

//currentItem id 
var itemId=57;  
Backand.on('item_updated_'+ itemId, function (data) { 
     //will be triggered when we receive an event named 
     // "item_updated_57" 
     console.log(data); 
    }); 
相關問題