管理 pubnub 图像订阅

managing pubnub image subscriptions

我正在使用 pubnub 实现具有图像发送功能的聊天应用程序,我能够发布图像。 但是在订阅时我收到的是图像 link 而不是实际图像。我将消息作为 JSON 对象作为 ''' {"nameValuePairs":{"imageurl":"example.com"}}

''' . 我如何使用它来将它放入 Imageview 中。这是我的代码 (发布处理程序) ''' var image = JSONObject() as JSONObject image.put("imageurl","example.com")

''' 在订阅处理程序中收到的消息是一个 json 对象而不是图像。为什么 pubnub 不从外部服务器捕获我的图像。

使用名为 Glide 的库可能是最简单的。这将为您管理图像的下载和缩放。按照设置说明进行操作,然后在收到图像 url 后简单地使用如下示例代码:

Glide
    .with(activity or fragment, etc.)
    .load(urlFromResponse)
    .centerCrop() // If you want to crop it
    .placeholder(R.drawable.loading_spinner) // also optional
    .into(myImageView);

因此 PubNub 不会为您下载和移动图像,PubSub 消息传递总线会将 URL 从您的发布移动到频道的订阅者。

因此,我建议实施 'type' 消息来代表您的图像。 例如:

{
        "content": “Hi Team, anyone fancy lunch today?”,
        "type": “Text”,
}

图像示例:

{
      "type":"image",
      "thumbnailURL":"https://cdn.image.server/thumbnail",
      "fullURL":"https://cdn.image.server/full"
}

如您所知,传入消息是 'type' 图像,然后您可以将 URL 放入工厂并以这种方式加载:

URL url = new URL(pubnubMessage.fullURL);
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
imageView.setImageBitmap(bmp);

希望对您有所帮助!