Laravel echo listen for whisper function not working












0















I'm building a live chat app, but i found that listenforwhisper function is not working, but .whisper() function work fine, pusher also received client typing event.
enter image description here



Here is my code:



For listen whisper:



Echo.private(`messages.${this.user.id}`)
.listen("NewMessage", (e) => {
this.handleIncoming(e.message);
})
.listenForWhisper("typing", (e) => {
if(e.name !='') {
this.typeStatus = 'typing .........'
}
else {
this.typeStatus = ''
}
console.log(this.typeStatus);
});


For whisper:



watch: {
message() {
Echo.private(`messages.${this.user.id}`)
.whisper("typing", {
name: this.message
});
}
}


For channel:



Broadcast::channel('messages.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});


Theoretically my console will return the typeStatus, but i got nothing in my console.










share|improve this question



























    0















    I'm building a live chat app, but i found that listenforwhisper function is not working, but .whisper() function work fine, pusher also received client typing event.
    enter image description here



    Here is my code:



    For listen whisper:



    Echo.private(`messages.${this.user.id}`)
    .listen("NewMessage", (e) => {
    this.handleIncoming(e.message);
    })
    .listenForWhisper("typing", (e) => {
    if(e.name !='') {
    this.typeStatus = 'typing .........'
    }
    else {
    this.typeStatus = ''
    }
    console.log(this.typeStatus);
    });


    For whisper:



    watch: {
    message() {
    Echo.private(`messages.${this.user.id}`)
    .whisper("typing", {
    name: this.message
    });
    }
    }


    For channel:



    Broadcast::channel('messages.{id}', function ($user, $id) {
    return (int) $user->id === (int) $id;
    });


    Theoretically my console will return the typeStatus, but i got nothing in my console.










    share|improve this question

























      0












      0








      0








      I'm building a live chat app, but i found that listenforwhisper function is not working, but .whisper() function work fine, pusher also received client typing event.
      enter image description here



      Here is my code:



      For listen whisper:



      Echo.private(`messages.${this.user.id}`)
      .listen("NewMessage", (e) => {
      this.handleIncoming(e.message);
      })
      .listenForWhisper("typing", (e) => {
      if(e.name !='') {
      this.typeStatus = 'typing .........'
      }
      else {
      this.typeStatus = ''
      }
      console.log(this.typeStatus);
      });


      For whisper:



      watch: {
      message() {
      Echo.private(`messages.${this.user.id}`)
      .whisper("typing", {
      name: this.message
      });
      }
      }


      For channel:



      Broadcast::channel('messages.{id}', function ($user, $id) {
      return (int) $user->id === (int) $id;
      });


      Theoretically my console will return the typeStatus, but i got nothing in my console.










      share|improve this question














      I'm building a live chat app, but i found that listenforwhisper function is not working, but .whisper() function work fine, pusher also received client typing event.
      enter image description here



      Here is my code:



      For listen whisper:



      Echo.private(`messages.${this.user.id}`)
      .listen("NewMessage", (e) => {
      this.handleIncoming(e.message);
      })
      .listenForWhisper("typing", (e) => {
      if(e.name !='') {
      this.typeStatus = 'typing .........'
      }
      else {
      this.typeStatus = ''
      }
      console.log(this.typeStatus);
      });


      For whisper:



      watch: {
      message() {
      Echo.private(`messages.${this.user.id}`)
      .whisper("typing", {
      name: this.message
      });
      }
      }


      For channel:



      Broadcast::channel('messages.{id}', function ($user, $id) {
      return (int) $user->id === (int) $id;
      });


      Theoretically my console will return the typeStatus, but i got nothing in my console.







      vue.js pusher laravel-echo






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 15 '18 at 2:15









      chengweichengwei

      428




      428
























          1 Answer
          1






          active

          oldest

          votes


















          0














          Whisper works like broadcastToOthers. You're now trying to listen for the current users whispers. You should have a room where the whisper goes to and there should be multiple clients there to recieve. Now your channel is tied to the user and no-one else can see the messages that go through that channel.






          share|improve this answer
























          • so you mean i have to have a channel that id is using a room id, and this room id will accept both the sender and receiver and return true??

            – chengwei
            Nov 15 '18 at 14:44






          • 1





            Exactly, you can keep the room ids in database and add them as a manyToMany relationship for both users.

            – Niko Peltoniemi
            Nov 16 '18 at 15:15











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53311474%2flaravel-echo-listen-for-whisper-function-not-working%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          Whisper works like broadcastToOthers. You're now trying to listen for the current users whispers. You should have a room where the whisper goes to and there should be multiple clients there to recieve. Now your channel is tied to the user and no-one else can see the messages that go through that channel.






          share|improve this answer
























          • so you mean i have to have a channel that id is using a room id, and this room id will accept both the sender and receiver and return true??

            – chengwei
            Nov 15 '18 at 14:44






          • 1





            Exactly, you can keep the room ids in database and add them as a manyToMany relationship for both users.

            – Niko Peltoniemi
            Nov 16 '18 at 15:15
















          0














          Whisper works like broadcastToOthers. You're now trying to listen for the current users whispers. You should have a room where the whisper goes to and there should be multiple clients there to recieve. Now your channel is tied to the user and no-one else can see the messages that go through that channel.






          share|improve this answer
























          • so you mean i have to have a channel that id is using a room id, and this room id will accept both the sender and receiver and return true??

            – chengwei
            Nov 15 '18 at 14:44






          • 1





            Exactly, you can keep the room ids in database and add them as a manyToMany relationship for both users.

            – Niko Peltoniemi
            Nov 16 '18 at 15:15














          0












          0








          0







          Whisper works like broadcastToOthers. You're now trying to listen for the current users whispers. You should have a room where the whisper goes to and there should be multiple clients there to recieve. Now your channel is tied to the user and no-one else can see the messages that go through that channel.






          share|improve this answer













          Whisper works like broadcastToOthers. You're now trying to listen for the current users whispers. You should have a room where the whisper goes to and there should be multiple clients there to recieve. Now your channel is tied to the user and no-one else can see the messages that go through that channel.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 15 '18 at 14:01









          Niko PeltoniemiNiko Peltoniemi

          21115




          21115













          • so you mean i have to have a channel that id is using a room id, and this room id will accept both the sender and receiver and return true??

            – chengwei
            Nov 15 '18 at 14:44






          • 1





            Exactly, you can keep the room ids in database and add them as a manyToMany relationship for both users.

            – Niko Peltoniemi
            Nov 16 '18 at 15:15



















          • so you mean i have to have a channel that id is using a room id, and this room id will accept both the sender and receiver and return true??

            – chengwei
            Nov 15 '18 at 14:44






          • 1





            Exactly, you can keep the room ids in database and add them as a manyToMany relationship for both users.

            – Niko Peltoniemi
            Nov 16 '18 at 15:15

















          so you mean i have to have a channel that id is using a room id, and this room id will accept both the sender and receiver and return true??

          – chengwei
          Nov 15 '18 at 14:44





          so you mean i have to have a channel that id is using a room id, and this room id will accept both the sender and receiver and return true??

          – chengwei
          Nov 15 '18 at 14:44




          1




          1





          Exactly, you can keep the room ids in database and add them as a manyToMany relationship for both users.

          – Niko Peltoniemi
          Nov 16 '18 at 15:15





          Exactly, you can keep the room ids in database and add them as a manyToMany relationship for both users.

          – Niko Peltoniemi
          Nov 16 '18 at 15:15




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53311474%2flaravel-echo-listen-for-whisper-function-not-working%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Xamarin.iOS Cant Deploy on Iphone

          Glorious Revolution

          Dulmage-Mendelsohn matrix decomposition in Python