मुझे लार्वेल 4 में लिखा गया एक वेबप्लिकेशन मिला है। यह एप्लिकेशन रैचेट का उपयोग करता है और अधिक विशिष्ट होने के लिए, यह पैकेज Latchet का उपयोग करता है। एक sidenote के रूप मैं निम्नलिखित तकनीकों का उपयोग कर रहा हूँ:websockets का उपयोग करते समय सबसे अच्छा अभ्यास?
अब मैं इस परिदृश्य पर मिल गया:
- मैं एक स्लाइड शो है जो होना चाहिए है वेबसाइकिल के माध्यम से अद्यतन प्राप्त करें।
- पूरा एप्लिकेशन सेटअप है और मैं PHP से अपने वेबस्केट क्लाइंट में ZeroMq के माध्यम से नए कोड परिवर्तन प्रकाशित कर सकता हूं।
//routes.php // Setup a connection and register a topic where clients can connect to. Latchet::connection('Connection'); Latchet::topic('PhotoStream/{client}', 'PhotoStreamController');
फिर, मैं रैशे सर्वर प्रारंभ:
मेरी routes.php में, मैं इतना है कि एक विषय को सही ढंग से पंजीकृत है, निम्नलिखित कोड है।
sudo php artisan latchet:listen
एक फ़ोटो अपलोड किया जाता है, मैं तो उस (इस मामले में PhotoStream/client1
) मेरे विषय से सुन रहे हैं ग्राहकों को अपडेट पुश करने के लिए निम्न कोड चला सकते हैं:
// Create the object, save it to db and then publish it to my websockets
$photo = new Photo;
$photo->location = 'path/to/file';
$photo->save();
// Publish it through my websocket clients. (push from server).
Latchet::publish('PhotoStream/client1', array('msg' => $photo->toArray()));
यह कोड सभी काम करता है, लेकिन यह एक अद्यतन के मामले में है। मेरा प्रश्न निम्नानुसार है:
मुझे क्लाइंट की प्रारंभिकरण को कैसे संभालना चाहिए?
- क्या मुझे पहले सादे पुराने PHP के साथ पृष्ठ प्रस्तुत करना चाहिए और फिर मेरे वेबसाकेट क्लाइंट को प्रारंभ करना चाहिए जो तब और अपडेट प्राप्त करता है (यदि कोई है)?
- या जब मैं एक नया वेबसाईट क्लाइंट पंजीकृत करता हूं, तो मुझे अनुरोध के साथ अतिरिक्त पैरामीटर देना चाहिए ताकि सर्वर मुझे websockets के माध्यम से पूरा डेटा भेज सके?
दो विकल्पों के उत्तरार्द्ध मेरे लिए सबसे अच्छा विकल्प लगता है लेकिन मुझे वास्तव में यह नहीं पता कि इसे एक अच्छे तरीके से कैसे कार्यान्वित किया जाए। (प्रारंभिक सूची प्राप्त करने के)
//session.subscribe(....)
session.call('route/to/controller', arg1, arg2).then(function(res) {
console.log(res) //initial collection of photos
});
php तरफ:
मेरी इच्छा है कि आपको और जवाब मिलें। मैं लार्वेल के साथ websockets लागू करने की अपनी यात्रा शुरू कर रहा हूँ; मुझे थोड़ा पता है लेकिन मेरी खोज जारी है। –
निश्चित रूप से मुझे अद्यतन रखें! –
खैर, निश्चित रूप से ब्रेन सॉकेट का उपयोग न करें। वे कहते हैं कि वे v1.0 पर हैं, लेकिन सर्वर को धक्का देना असंभव है। जब मैं एक और सॉकेट प्लगइन कोशिश करता हूं तो मैं वापस जांच करूंगा। –