如何显示图像推送实时聊天

时间:2017-02-28 00:37:03

标签: javascript php jquery html pusher

我试图使用图像进行实时聊天使用pusher我无法找到任何关于如何使用pusher显示图像我使用BLOB存储图像但是无法在客户端的javascript中显示它们,键入消息的人图像出现只是找到,但在另一个人的屏幕上它的回来未定义。我没有发布提交javascript,因为它的工作正常只是绑定不好

$avatar = 'data:image/png;base64,'. base64_encode( $image );
$pusher = PusherInstance::get_pusher() ;
$pusher->trigger(
    'channel_test',
    'new_comments',
    array('message' => $message ,'user' => $data_user),
    $_POST['socket_id']
);
echo json_encode(array('message' => $message,'user' => $data_user,'avatar'=>$avatar)) ;

然后我尝试使用javscript显示它们,

channel.bind('new_comments',function(data){
   $('.chat-widget').append("<div class='row'>\
       <div class='chat_post col-lg-12'>\
        <div class='media'>\
         <a class='pull-left' href='#'>\
              <img class='media-object img-circle' width=30 height=30 src='" + data.avatar +"' alt=''>\
                  </a>\
                  <div class='media-body'>\
                      <h4 class='media-heading chat-name'><a href='profile.php?user=" + data.user + "' class='user_profile'>" + data.user + "</a>\
                          <span class='small pull-right'>12:23 PM</span>\
                      </h4>" + data.message + " </div>\
                    </div>\
                </div>\
                </div>\
            <hr>\
");

2 个答案:

答案 0 :(得分:1)

如评论中所述,邮件大小超过10kB限制。由于此限制,最好只通过Pusher发送图像的URL,并从服务器提供图像本身。

答案 1 :(得分:0)

像现代的信使一样,将您的图像存储到数据库中的副本,大小应该非常小(在php中使用像GD这样的图像库),减小大小到 100X100 像素之类的东西,并使用 Blur 过滤器来减小尺寸。 然后将消息保存为 BLOB 类型在数据库中。然后你可以用socket发送它,你遵循推送规则!

第二个副本不保存在DB中,您必须将其存储在Storage中,当收到消息时,用户必须点击预览图像(小尺寸)才能根据URL下载。

您还可以使用 javascript 或 JQuery 来制作接收消息事件触发后的自动下载机制。