2011-04-11 22 views
5

मैं हाल ही में एक बोउट नोड जेएस पढ़ रहा हूं, और चैट क्षमताएं बहुत अच्छी लगती हैं। हालांकि, मैंने देखा है कि एकमात्र चैट उदाहरण मूल रूप से चैट सर्वर को एक निश्चित यूआरएल (मीटिंग रूम की तरह) पर प्रसारित करते हैं। चैट क्लाइंट को gchat की तरह बनाने के लिए नोड जेएस का उपयोग करना संभव है? - जहां वर्तमान पृष्ठ पर एक चैट विंडो पॉप अप हो जाती है और फिर कई पृष्ठों के माध्यम से बनी रहती है। क्या किसी ने अभी तक इसका एक उदाहरण देखा है?नोड जेएस - लगातार निजी चैट रूम बनाना

यदि नहीं, तो इस उद्देश्य के लिए उपयोग करने के लिए अन्य तकनीकों के सुझाव (मुझे पता है कि अन्य प्रश्नों में उत्तर दिया गया है)?

धन्यवाद।

+0

लिखना बहुत मुश्किल नहीं होना चाहिए। आप वास्तव में क्या ढूंढ रहे हैं? – Raynos

+0

मुझे अपनी वेबसाइट में एकीकृत करने के लिए क्लाइंट लिखने में रूचि है। उपयोगकर्ता अपने "दोस्त" को देख पाएंगे और यदि वे चाहते हैं तो सभी पृष्ठों पर बने रहने के लिए यह एक समान अनुभव होगा। मुझे लगता है कि मैं सिर्फ सोच रहा हूं कि विशिष्ट उपयोगकर्ताओं को कई निजी चैट सत्रों को प्रसारित करना संभव है (चैट रूम से अलग), और उपयोगकर्ता के लिए इसे बंद होने तक जारी रखें। मुझे पता है कि इसमें लिखने के लिए अन्य भाषाएं हैं, लेकिन यदि संभव हो तो नोड का उपयोग करने के लिए एक अच्छा लग रहा था। टिप्पणी के लिए धन्यवाद। – smpappas

+0

"gchat" से आपका मतलब Google चैट या कुछ और है? – yojimbo87

उत्तर

6

मैं आपको jquery और now पर भरोसेमंद आईओ और समाधान से थकाऊ डोम हेरफेर के लिए एक छद्म कार्यान्वयन प्रदान करूंगा।

// Server 

var nowjs = require('now'); 
var everyone = nowjs.initialize(httpServer); 

everyone.now.joinRoom = function(room) { 
    nowjs.getGroup(room).addUser(this.user.clientId); 
} 

everyone.now.leaveRoom = function(room) { 
    nowjs.getGroup(room).removeUser(this.user.clientId); 
} 

everyone.now.messageRoom = function(room, message) { 
    nowjs.getGroup(room).now.message(message); 
} 

// Client 

var currRoom = ""; 

$(".join").click(function() { 
    currRoom = ... 
    now.joinRoom(currRoom); 
}); 

$(".send").click(function() { 
    var input = ... 
    now.messageRoom(currRoom, input.text()); 
}); 

now.messageRoom = function(message) { 
    $("messages").append($("<div></div>").text(message)); 
}; 

मैंने केवल खुद को देखा है कि अबोज (0.5) के नए संस्करण में समूह प्रणाली है। यह मूल रूप से वह करता है जो आप चाहते हैं। कोई परेशानी नही।

यदि आप चाहते हैं कि आप अबोज निर्भरता को हटा दें और इसे 100/200 लाइन कोड के साथ प्रतिस्थापित कर सकते हैं। मैं इसे उपयोगकर्ता के लिए एक अभ्यास के रूप में छोड़ दूंगा।

+0

धन्यवाद रेनोस। मैंने अभी अभीोज़ में देखा है और यह वही हो सकता है जो मैं ढूंढ रहा हूं। मैं इसमें एक स्टैब ले जाऊंगा, मेरा मानना ​​है कि मुझे निजी चैट या समूह मीटिंग्स की मांग पर समूहों को उत्पन्न करने में सक्षम होना चाहिए, और इसे समाप्त होने पर केवल उपयोगकर्ताओं और समूह को हटा दें। – smpappas

+0

@smpappas बहुत ज्यादा। वास्तविक समय IO को सारणित करने के संदर्भ में 'अब' का उपयोग करना बहुत अच्छा है। हालांकि आपको देखना होगा कि आप ओवरबोर्ड पर नहीं जाते हैं, आप दक्षता का त्याग करते हैं। – Raynos

1

AjaxIM पर एक नज़र डालें: https://github.com/freq32/AjaxIM

यह एक फेसबुक शैली चैट एप्लिकेशन (लगता है मित्रों की सूची, स्क्रीन के नीचे छोटे लगातार चैट बार, पॉपअप चैट) NodeJS पर आधारित है।

संबंधित मुद्दे