我真的试图找到这个问题的解决方案,但没有.有一些与此概念相关的线程,但我找不到全面的解决方案.
我有一个Openfire服务器发送消息.当两个用户都在线时,没有问题.但是,当用户离线时,我想发送推送通知,如Whatsapp.我听说Whatsapp和其他IM应用程序使用ejabber的修改版本发送推送通知,但无法找到方法.
一种可能性是使用GCM,但我不确定这是否是正确的方法.另外,我想避免轮询,以免耗尽电池寿命.
有没有人知道一些解决方案或有一个例子?
我遇到了一个问题:
我创建了这个我需要映射到的流Map<String, Object>:
private Map<String, Object> collectArguments(JoinPoint point) {
CodeSignature signature = (CodeSignature) point.getSignature();
String[] argNames = signature.getParameterNames();
Object[] args = point.getArgs();
return IntStream.range(0, args.length)
.collect(Collectors.toMap(param -> argNames[param], param -> args[param]));
}
Run Code Online (Sandbox Code Playgroud)
我收到以下消息,我不太清楚:
[Java] Type mismatch: cannot convert from Collector<Object,capture#3-of ?,Map<Object,Object>> to Supplier<R>
Run Code Online (Sandbox Code Playgroud) 我通过互联网查看了许多不同的资源,以了解Windows Phone 7的Authenticated Push Notification机制的先决条件和实现.
我经历过:
我所追求的是经过身份验证的推送通知的先决条件和实现的确切步骤(1,2,3 ......).
此外,当我们没有通过市场提供的应用程序时,这在开发时如何工作?
我已经成功实现了APN for development Environment.但是我在为ad-hoc分发环境实现相同的问题时遇到了问题.任何人都可以建议我,我需要为此创建不同的应用程序ID,证书和配置文件吗?Sandbox有什么变化吗?步骤教程将非常受欢迎.
谢谢Saleel Karkhanis
我正在使用APNS python包装器库来发送推送通知.Apple文档称消息的有效负载限制为256字节.但由于可以在一个请求中发送多个PN,我想知道同一个请求中允许的消息数量是否有限制?
发送批量(1000+)推送通知的正确方法是什么?Apple服务器是否限制连接/秒或PN /秒以避免垃圾邮件?
使用此链接生成用于推送通知的pem文件,但我无法理解以下步骤...
在服务器上安装SSL证书和密钥
您应该在运行提供程序代码的服务器计算机上安装先前获得的SSL分发证书和私有加密密钥,并从中与沙箱或生产版本的APN连接.为此,请完成以下步骤:
打开Keychain Access实用程序,然后单击左窗格中的"我的证书"类别.
找到要安装的证书并公开其内容.您将看到证书和私钥.
选择证书和密钥,选择"文件">"导出项目",然后将其导出为个人信息交换(.p12)文件.
以Ruby和Perl等语言实现的服务器通常能够更好地处理个人信息交换格式的证书.要将证书转换为此格式,请完成以下步骤:
在KeyChain Access中,选择证书并选择"文件">"导出项目".选择"个人信息交换(.p12)"选项,选择保存位置,然后单击"保存".
启动终端应用程序并在提示符后输入以下命令:openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes.
将.pem证书复制到新计算机并将其安装在适当的位置.
ssl-certificate push-notification apple-push-notifications ios
我想尝试使用Google Cloud Messaging(GCM)服务,我在开始时遇到了问题.
AUTHENTICATION_FAILED尝试将设备注册到GCM时出错.我搜索了所有我发现的密码不正确的变种.我的密码是正确的,我只使用一个帐户.
在Android上实现GCM客户端有两种方法:
当然我从第二个开始就遇到了这个问题.
我认为问题出在我的手机上,但后来决定尝试第一种方式,哪有效!但是,它已被弃用,需要一个额外的jar,这似乎不是正确的方法.
为了解错误的原因,我反编译了Google Play Services jar并将其与GCM库进行了比较.
事实证明他们都有类似的方法,如:
void register(Context context, String senderIds) {
Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER");
intent.setPackage("com.google.android.gms"); // this one row are different
setPackageNameExtra(context, intent);
intent.putExtra("sender", senderIds);
context.startService(intent);
}
Run Code Online (Sandbox Code Playgroud)
一行的差异:
在GCM库中com.google.android.gsf,gsf谷歌服务框架(我猜)在哪里,它的工作原理!
在Google Play Services API jar中com.google.android.gms,它不起作用(AUTHENTICATION_FAILED错误).
然后在GCM库中,我将"gsf"替换为"gms"并运行.我得到了相同的AUTHENTICATION_FAILED错误!如果我输入另一个包,那么它就不起作用了.
我需要做些什么来使它工作?我应该在手机中设置一些东西吗?或者这是Google Play服务中的错误?有人遇到过这样的问题吗?
提前致谢!
android push-notification google-play google-cloud-messaging google-play-services
在审查大型代码库时,我经常会遇到这样的情况:
@Override
public int hashCode()
{
return someFieldValue.hashCode();
}
Run Code Online (Sandbox Code Playgroud)
程序员不是为类生成自己唯一的哈希码,而是从字段值继承哈希码.我的直觉(也可能是消化问题)告诉我这是错的,但我不能把手指放在上面.如果有这种实施,会出现什么问题?
我是java中函数式编程的新手,并且想知道如何在(例如)此操作中编写代码来避免NPE:
myList.stream()
.reduce((prev, curr) -> prev.getTimestamp().isAfter(curr.getTimestamp()) ? prev : curr);
.get().getTimestamp();
Run Code Online (Sandbox Code Playgroud)
我的目的是找到列表中最新对象的时间戳.关于如何更好地收集最后一个元素的建议非常受欢迎,但我的主要问题实际上是为什么这个有效.
文档说该函数抛出NullPointerException"如果减少的结果为空":
这没关系,但是我不太明白为什么NullPointerException当这个代码运行时只包含一个元素的列表时我没有得到.prev在这种情况下,我预计会为空.我试过调试,但是当只有一个元素时,它似乎只是跨过整个lambda表达式.
我有一个商品对象,它有两个属性:firstCategoryId和secondCategoryId.我有一个商品清单,我想获得所有类别ID(包括firstCategoryId和secondCategoryId).
我目前的解决方案是:
List<Integer> categoryIdList = goodsList.stream().map(g->g.getFirstCategoryId()).collect(toList());
categoryIdList.addAll(goodsList.stream().map(g->g.getSecondCategoryId()).collect(toList()));
Run Code Online (Sandbox Code Playgroud)
有没有更方便的方式我可以在一个语句中获得所有categoryIds?
java ×4
java-8 ×3
android ×2
ios ×2
c# ×1
collections ×1
distribution ×1
google-play ×1
hashcode ×1
iphone ×1
java-stream ×1
lambda ×1
mpns ×1
null ×1
xmpp ×1