मुख्य अंतर यह है कि आप RPC को PersistentConnection के साथ नहीं कर सकते, आप केवल कच्चा डेटा भेज सकते हैं। इसलिए इस तरह से सर्वर से संदेश भेजने के बजाय
Clients.All.addNewMessageToPage(name, message);
आपको किसी ऑब्जेक्ट को उसके साथ भेजना होगा Connection.Broadcast()
या Connection.Send()
फिर क्लाइंट को यह तय करना होगा कि उसके साथ क्या करना है। उदाहरण के लिए, आप इस तरह से एक वस्तु भेज सकते हैं:
Connection.Broadcast(new {
method: "addNewMessageToPage",
name: "Albert",
message: "Hello"
});
और क्लाइंट पर, केवल परिभाषित करने के बजाय
yourHub.client.addNewMessageToPage = function(name, message) {
// things and stuff
};
आने वाले सभी संदेशों को संभालने के लिए आपको एक कॉलबैक जोड़ना होगा:
function addNewMessageToPage(name, message) {
// things and stuff
}
connection.received(function (data) {
var method = data.method;
window[method](data.name, data.message);
});
आपको OnReceived
विधि में सर्वर साइड पर एक ही तरह का डिस्पैच करना होगा । आपको हब विधियों के साथ जोरदार टाइप की गई वस्तुओं को प्राप्त करने के बजाय डेटा स्ट्रिंग को वहां से हटाना होगा।
हब के ऊपर PersistentConnection चुनने के लिए कई कारण नहीं हैं। एक कारण जो मुझे पता है, वह यह है कि प्रीसेराइज्ड JSON भेजना संभव है को PersistentConnection के माध्यम , जिसे आप हब का उपयोग करके नहीं कर सकते। कुछ स्थितियों में, यह एक प्रासंगिक प्रदर्शन लाभ हो सकता है।
इसके अलावा, प्रलेखन से यह उद्धरण देखें :
एक संचार मॉडल चुनना
अधिकांश अनुप्रयोगों को हब एपीआई का उपयोग करना चाहिए। कनेक्शन API का उपयोग निम्नलिखित परिस्थितियों में किया जा सकता है:
आपकी संदेश संरचना के आधार पर, आपको PersistentConnection का उपयोग करने से छोटे इत्र के लाभ भी मिल सकते हैं।
आप सिग्नलआर के नमूनों पर एक नज़र डालना चाह सकते हैं, विशेष रूप से यह यहाँ।