मैं परियोजना के साथ 6 महीने के बाद से लैरवेल 5.4 घटनाओं का काफी कुशलता से उपयोग कर रहा हूं। जब मैं प्रारंभिक सेटअप कर रहा था तो मुझे भी यही परेशानी थी। मैं इसे काम करने के लिए जो भी किया है, उसके साथ आपको मार्गदर्शन करने देता हूं।
मैं देख सकता हूं कि आपके पास पुशरज़ को संदेश सामग्री भेजने के लिए SendMessageEvent
इवेंट शुरू करने के लिए controller
है। इसे जाने के लिए आपको निम्नलिखित सामग्री की जांच करनी होगी।
चेक 1:
लेकिन आप अगर आप एक eventhandler परिभाषित किया गया है उल्लेख नहीं किया है। इवेंट हैंडलर SendMessageEvent
और इसके वास्तविक प्रसारक के बीच एक पुल के रूप में काम करता है। तो एक Eventhandler को परिभाषित करें जैसे app/Handlers/Events /
जैसे फ़ोल्डर्स बनाएं। (यहां हैंडलर और ईवेंट फ़ोल्डर्स हैं। जहां ईवेंट हैंडलर के अंदर हैं)
इस ईवेंट फ़ोल्डर के अंदर एक फ़ाइल के साथ एक फ़ाइल बनाएं।
HandleMyMessage.php
और यह में इस कोड डाल:
<?php
namespace App\Handlers\Events;
use App\Events\SendMessageEvent; // This should be your event class..
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class HandleMyMessage{
protected $name;
public function __construct() {
//
}
public function handle(Message $event) {
// No need to write anything here
}
}
चेक 2: वहाँ app/Providers/EventServiceProvider.php
स्थान पर एक प्रदाता होना चाहिए, और में EventServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Event;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
'App\Events\SendMessageEvent' => [
'App\Handlers\Events\EventServiceProvider',
],
];
/**
* Register any events for your application.
*
* @return void
*/
public function boot()
{
parent::boot();
}
}
चेक निम्नलिखित कोड डालें 3: और आपको ev भेजने के वाक्यविन्यास को बदलना चाहिए इस तरह आपके नियंत्रक में एंट संदेश:
$broadcast_data['first_name'] = 'John';
$broadcast_data['last_name'] = 'Doe';
$return_socket['data'] = $broadcast_data;
Event::fire(new Message($return_socket)); // Sending message to pusherjs via Laravel Event.
इस पर, आपको अपने सिस्टम पर रेडिस स्थापित करने और इसे चलाने की भी आवश्यकता है।
उम्मीद है कि इससे मदद मिलती है। अगर आपको उपरोक्त में से किसी के लिए अधिक जानकारी चाहिए, तो बस टिप्पणी करें। मैं इसके लिए संदर्भ लिंक पोस्ट कर रहा हूं।
हैप्पी कोडिंग !!! :-)
आप पूरी तरह से बदलने के लिए नहीं करना चाहते हैं SessionGuard। पासपोर्ट केवल आपके एपीआई मार्गों को कवर करना चाहिए। सत्रगार्ड ने किसी भी रूट को कवर किया जो HTML (वेब मार्ग) देता है। फिर किसी भी जावास्क्रिप्ट कॉल को आपके एपीआई का उपयोग करना चाहिए जैसा कि "जावास्क्रिप्ट के साथ आपका एपीआई उपभोग करना"] में बताया गया है (https://laravel.com/docs/5.4/passport#consuming-your-api-with-javascript) दस्तावेज़ के अनुभाग – jfadich
हाय पंकज, क्या आपको इस मुद्दे का समाधान मिला? –
अभी तक, समाधान के लिए प्रतीक्षा कर रहा है। – Pankaj