gpt4 book ai didi

android - 使用 Google Cloud Messaging 云连接服务器 (XMPP) 的上游文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:03 26 4
gpt4 key购买 nike

我正在使用 GCM 云连接服务器实现实时聊天。我已阅读文档 Upstream messages Using GCM .我学会了如何通过 GCM 将消息上传到我的服务器。众所周知,它比通过 http 将消息发送到网络服务器更可靠,也更好。

但现在我也想在聊天中上传文件。但问题是 GCM 只允许上传最大 4KB 的消息。我可以使用网络服务或 FTP 将文件上传到服务器,然后通过 GCM 将文件名传递给服务器。但我想要更合适的解决方案。那么有没有办法通过 GCM 云连接服务器来做到这一点??

提前感谢您的帮助。

最佳答案

我在这种情况下使用的解决方案是:

1 - 使用 loopj library通过 POST 将文件发送到我的服务器 (php p.ex)

// loopj supports Http Auth, cookies, params, multipart files, etc. So is a good solution. Like:

...
AsyncHttpClient client = new AsyncHttpClient();
client.addHeader("Authorization", "Basic " + Base64.encodeToString("aaa:bbb".getBytes(), Base64.NO_WRAP));

RequestParams params = new RequestParams();
params.put("cmd", "upp");
params.put("uid", Long.toString(getUser().getId()));
params.put("tid", Long.toString(getUser().getIdTeam()));
try{
params.put("avatar", file); // File object
}catch(FileNotFoundException e){
...
}

SharePhotoHandler handler=new SharePhotoHandler(mContext,file,notificate);
client.post(URI_BASE, params, handler);
...

我使用自定义处理程序来控制应用可以控制的文件上传 (SharePhotoHandler.class)

  • 成功
  • 失败
  • 完成
  • ...

此方法必须让您控制上传/下载文件状态(确定、错误、上传、下载等)

文件上传后,服务器必须通知其他客户端有新文件要下载,或者在您的“onSuccess”方法上向其他客户端发送 GCM 消息。在我的例子中,服务器向其他客户端发送文件名 (+URL) 以供下载。

关于android - 使用 Google Cloud Messaging 云连接服务器 (XMPP) 的上游文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23988415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com