Я получаю сообщение об ошибке «Uncaught ReferenceError: Pusher не определен» в консоли при создании веб-уведомлений с использованием LARAVEL и PUSHER CHANNELS - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь отправить уведомление для сети, используя https://pusher.com Я реализовал все, что дано в документации по pusher, но теперь я все еще получаю сообщение об ошибке типа «Uncaught ReferenceError: Pusher не определен» в консоли

пожалуйста, проверьте, есть ли проблема в моем коде Я создал событие FormSubmitted в App \ Events это похоже на

<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class FormSubmitted implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;
    public $text;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($text)
    {
        //
        $this->text = $text;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return \Illuminate\Broadcasting\Channel|array
     */
    public function broadcastOn()
    {
        return new Channel('my-channel');
    }

    public function broadcastAs()
    {
        return 'form-submitted';
    }
}

=============================================== ==========================

Я создал counter.blade.php внутри папки ресурсов, это выглядит как

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Pusher Test</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script
  <script src="https://js.pusher.com/4.4/pusher.min.js"></script>
  <script>

    // Enable pusher logging - don't include this in production
    Pusher.logToConsole = true;

    var pusher = new Pusher('MY_KEY_PLACED_HERE', {
      cluster: 'ap2',
      forceTLS: true
    });

    var channel = pusher.subscribe('my-channel');
    channel.bind('form-submitted', function(data) {
      alert(JSON.stringify(data));
    });
  </script>
</head>
<body>
  <h1>Pusher Test</h1>
  <p>
    Try publishing an event to channel <code>my-channel</code>
    with event name <code>my-event</code>.
  </p>
</body>
</html>

=============================================== ===================

затем я создаю sender.blade.php внутри ресурса

<form action="sender" method="post">
    {{csrf_field()}}
    <input type="text" name="text">
    <input type="submit" value="submit">
</form>

=============================================== ======== Я установил все учетные данные в файле .env (здесь я установил правильный ключ и секрет)

BROADCAST_DRIVER=pusher
PUSHER_APP_ID=XXXX
PUSHER_APP_KEY=XXXXX
PUSHER_APP_SECRET=XXXX
PUSHER_APP_CLUSTER=AP2

=============================================== ========

and finally `web.php` looks like 


Route::get('/counter', function () {
    return view('counter');
});

Route::get('/sender', function () {
    return view('sender');
});

Route::post('/sender', function () {

    $text = request()->text;

    event(new FormSubmitted($text));
});

=============================================== ============ когда я запускаю localhost / counter в браузере

я получаю "Uncaught ReferenceError: Pusher не определен" эта ошибка в консоли

Я ожидаю, что когда я отправляю localhost / sender некоторый ввод из текста, эти текстовые данные должны быть всплывающими как уведомление

1 Ответ

0 голосов
/ 05 апреля 2019

В вашем теге header script есть опечатка.Вы не правильно завершили тег JQuery </script.Измените его на </script>.

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
...