小编sha*_*esh的帖子

向ios发送推送通知,以便与离线用户openfire xmpp进行聊天

我有一个使用openfire的ios聊天应用程序,我需要做的是当消息(1)因任何原因无法发送时发送推送通知,(2)app处于暂停状态,即无法生成通知在其自己的.

我已经在stackoverflow和其他地方阅读了大部分有关此问题的相关问题/建议,我已经为我的问题得出了一些解决方案.我不是ios开发人员,也不是几天前我对openfire或xmpp一无所知,所以我担心我对事情的理解可能不完整,我的解决方案可能存在缺陷.

请确认我对它的理解,并建议我是否遗漏了某些东西,或者是否有更好的方法.还请建议实施下面列出的特定解决方案的复杂程度.

这里的挑战是确定何时需要推送以及何时启动流程,所以

1)一种方法是使用xmpp的xep-0184实现来检查消息是否已传递.要做到这一点,我们应该在ios数据库中有一些带有消息的传递标志,当从另一端收到传递的响应时更新.因此,我们需要在一段时间后检查此标志,如果传递的状态为false,则使用该消息启动推送过程.看起来是一个复杂的解决方案(等待响应..检查标志有一些时间滞后..不是很令人印象深刻)

2)更直接的方法是在openfire中做一些事情,当openfire无法传递它将其存储在离线表中的消息时,我们可以对该部分进行一些拦截并使用消息启动推送过程.这看起来是正确的方法,但我真的害怕在openfire中获得那么多东西并改变一些东西(这可能也很容易,有人用openfire工作了一点可以说出来吗?)

3)这是我的最后一招,这不是解决方案......但如果我无法在预期的时间范围内(从现在起一周内)正确完成,我们计划发送所有消息的推送通知.oppenfire将关注正常聊天,同时从我们的服务器发送每个消息的推送但是当应用程序在前台时,我们做一些事情来处理不需要显示的额外推送消息,否则只要有一个推送就会收到推送信息.你们怎么看待这种临时的方式(我们当然必须尽快改变这一点),这是可行的(或者我在这里也遗漏了一些东西).

PS谁能告诉Whatsapp和其他流行的应用程序如何处理这个?

非常感谢您的帮助.

chat xmpp openfire push-notification ios

17
推荐指数
1
解决办法
1万
查看次数

使用spring-data-mongodb基于mongodb的DBRef列表中的匹配元素进行查询

我对mongodb很新.我正在使用spring-data-mongodb来查询我的java.如果可以实现,请指导我.

假设我有两个对象"Car"和"User"如下,其中car有用户列表,

Class Car {

    @Id
    String id;
    String model;
    @DBRef
    List<User> users;
    @DBRef
    Company company;

}

Class User {

    @Id
    String id;
    String name;

}
Run Code Online (Sandbox Code Playgroud)

我想为用户找到所有汽车,(找到所有汽车用户已经给用户的车辆)

是否有可能实现使用spring-data-mongodb?

如果只有一个DBRef元素,这很容易,例如,对于公司我可以写这样的查询,

new Query(Criteria.where("company.$id").is(new ObjectId(companyId)))
Run Code Online (Sandbox Code Playgroud)

但是,如果有一个引用为DBRef的元素列表,如何实现这一点?

感谢帮助.

mongodb dbref spring-data-mongodb

11
推荐指数
2
解决办法
9012
查看次数

一对多映射到超类的属性

我有一个超类Questions及其子类MultipleChoiceQuestions

超类有一个领域 activity

我想创建一个Set<MultipleChoiceQuestions>并使用OneToMany注释mappedBy = "activity"

例如

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "activity" )
private Set<NQIMultipleChoiceQuestions> mcqQuestions = new HashSet<NQIMultipleChoiceQuestions>();
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

org.hibernate.AnnotationException: mappedBy reference an unknown target entity property 
Run Code Online (Sandbox Code Playgroud)

但是,如果我创建一组超类实体,它工作正常,

例如

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "activity")
private Set<NQIQuestions> questions = new HashSet<NQIQuestions>();
Run Code Online (Sandbox Code Playgroud)

有没有办法映射到超类的属性?

annotations hibernate one-to-many

10
推荐指数
1
解决办法
4472
查看次数

在同一个表中复制行并在MySQL中只更新一列

我需要根据某些条件(where子句)复制一行,从表中,在同一个表中创建一个重复的条目,并只更新一列(foreign_key).但是因为"select*from Table_name"返回包括primary_key在内的所有字段,所以无法插入新行错误:重复键.

我不知道表的所有列,所以我不能通过在select查询中只提供必需的列名来忽略primary_key.

是否有任何方法可以忽略primary_key来获取自身..或者我可以获取整行,并将primary_key值设置为null,然后在表中插入行,以便自动增加primary_key以添加新行.

谢谢.

mysql copy row primary-key duplicates

2
推荐指数
1
解决办法
5137
查看次数