将传入消息设置为与发送的消息不同

时间:2017-02-28 03:09:16

标签: pusher

有没有办法分别设置传入文本的样式,我知道这可能相对容易,但我已经挣扎了几天,所以任何帮助将不胜感激。

以下是我获取用户消息的代码。

<textarea type='text' class='materialize-textarea' 
         name='user_message' id='user_message' placeholder='Type here...' 
         style='width: 70%;'
</textarea>

这是我使用js

的推送器代码
( function( window, Pusher, $) {

  Pusher.log = function( msg ) {
    if( window.console && window.console.log ) {
      window.console.log( msg );
    }
  };

Pusher.channel_auth_endpoint = "auth.php";

  var pusher = new Pusher( CONFIG.PUSHER.APP_KEY );
  pusher.connection.bind('state_change', function( change ) {
    var el = $('.connection-status');
    el.removeClass( change.previous );
    el.addClass( change.current );
  });

  var channel = pusher.subscribe( CONFIG.PUSHER.CHANNEL_NAME );
  channel.bind( 'new_message', addMessage );

  function addMessage( data ) {
    var li = $('<li class="ui-li ui-li-static ui-body-c"></li>');
    li.text( data.text );
    li.hide();
    $('#messages').append(li);
    li.slideDown();
  }


  $(document).keypress(function(e) {
    if(e.which == 13) {  
    var userMessageEl = $('#user_message');
    var message = $.trim( userMessageEl.val() );
    if( message ) {
      $.ajax( {
        url: 'new_message',
        type: 'post',
        data: {
          text: message
        },
        success: function() {
          userMessageEl.val('');
        }
      });
    }


    return false;
  }
  });

})( window, window['Pusher'], jQuery );

这是我显示消息的代码,这仅在我使用php发送信息后保存到我的数据库并且用户刷新页面。

// Message sent by the user
      if($row2[initiator] === $lgusername){
      echo ("<li class='text-right' 
      style='margin-top: 5px; margin-bottom: 5px; margin-left: 100px; padding: 10px;
      background-color: #b2f2ec; border: 1px solid #ccc!important; 
      border-radius: 4px!important; text-color: #fff;'>" . $row2[msg] . "</li>");
      }

      Received message
      else {
      echo ("<li class='text-left' 
      style='margin-top: 5px; margin-bottom: 5px; margin-right: 100px; padding: 10px;
      background-color: #e4ffe1; border: 1px solid #ccc!important; 
      border-radius: 4px!important;'>" . $row2[msg] . "</li>");
      }

1 个答案:

答案 0 :(得分:0)

您可能要做的是使用senderId标记邮件,然后当您收到邮件时,您可以根据发送邮件的方式对其进行不同格式化。所以目前你正在用数据触发消息

{
  text: "message text"
}

相反,您可以使用数据触发

{
  text: "message text",
  senderId: "someId"
}

然后当您在addMessage函数中呈现邮件时,您可以检查data.senderId并根据其值的不同格式化li