相关疑难解决方法(0)

Android是否支持近实时推送通知?

我最近了解到iPhone应用程序能够接收几乎即时通知应用程序的应用程序 通知.

这是以推送通知的形式提供的,这是一种定制的协议,它始终保持与iPhone的数据连接,并将二进制数据包发送到应用程序,从服务器应用程序发送到手机应用程序0.5到5秒之间,可以非常快速地弹出警报响应时间.这是作为数据而不是SMS发送的,这些数据包作为数据计划的一部分而非作为传入消息收费.

我想知道,使用Android,是否有类似的工具,或者是否可以使用Android API实现与此类似的东西.为了澄清,我将类似定义为:

  • 不是SMS消息,而是一些数据驱动的解决方案
  • 尽可能实时
  • 可扩展,即作为移动应用程序的服务器部分,我可以在几秒钟内通知数千个应用程序实例

我很欣赏这个应用程序可能是基于拉取的,HTTP请求/响应风格,但理想情况下我不想仅仅为了检查通知而进行大量轮询; 除此之外,它就像滴水排放数据计划.

android push-notification

335
推荐指数
13
解决办法
18万
查看次数

Android/iOS Peer-To-Peer架构

这是一个广泛的问题,我发现了很多关于这个主题的信息.

可能的技术

这些都没有完全实现的对等库,或者我没有找到这样的.
事实上,我对任何类型的游戏库都不感兴趣(我没有针对这些问题)

我考虑过的问题

我想在尽可能多的设备之间进行有效通信,而无需使用移动数据(3G,HS*PA,LTE)或WIFI AP作为中间点.
而不是远距离连接人,真的就像PAN通过蓝牙.

因此,我需要具备哪些功能

  • 完全离线(不需要任何移动数据服务或wifi AP)
  • 跨平台兼容性(Android,iOS)
  • 移动操作系统向后兼容性(Android自2.3以来,iOS自5.1.1以来)

我想要的功能

  • 路由优化(OSPF,MME,...)
  • 不要求设备授权进行网络连接(参见Android 不安全的BT RFCOMM)
  • 可能包含多达数十个用户(最大20-30或更多,如果可能的话)
  • 如果需要,网络可能会选择自己的领导者(服务器节点)?

目前有什么我可以用于提到的功能吗?

android p2p bluetooth ios alljoyn

36
推荐指数
2
解决办法
2万
查看次数

在Android上使用XMPP推送用户通知 - 以任何方式定位这些通知,以便他们不会访问Google Talk等

我想使用XMPP将数据推送到我的客户端,这将转换为用户的通知,并计划使用他们的google-id登录我的应用程序.我理解XMPP的方式是它是一个直接发送到地址的简单消息,但我希望客户端将其作为指令获取并将其转换为游戏状态信息.

如果用户在谷歌聊天中获得一堆命令元组或十六进制垃圾,那将是非常令人沮丧的!我误解了这一切的运作方式吗?

google-app-engine android xmpp

12
推荐指数
1
解决办法
7997
查看次数

蓝牙/ WiFi直接套接字的高级协议?

当您在Android中使用蓝牙或WiFi Direct时,在所有握手等结束时,您最终会使用套接字.

使用TCP/IP,我们在套接字之上有一个超过一个的库,用于高级协议:HTTP,XMPP,IMAP等.由于这些库,我们可以处理更多特定于域的抽象一个操作(例如,"下载此文件"),由库处理的低级套接字管道.

问题:对于任何高级协议,是否已知通过Android的蓝牙和/或WiFi Direct层生成的插槽工作(或可能工作)?

现在,我对特定协议并不挑剔 - 我只是在寻找这种协议层的例子,以便让开发人员更容易使用这些类型的连接选项.

例如,看起来我可以为OkHTTP创建一个fork或附加组件,它使用套接字的替代源,我可以创建一个同样的Java HTTP服务器.鉴于这些,应用程序开发人员将编写通过蓝牙或WiFi Direct进行交谈的HTTP应用程序(至少在客户端,编码应该是相当"自然"的感觉,一旦连接特定的配对和握手已经开始).

IOW,回去处理原始套接字感觉这么二十年前... :-)

谢谢!


UPDATE

根据Kristopher Micinski对ZeroMQ答案的评论,我认为可能会有一些澄清.

更容易说出我想要的东西:创建它们后我不想触摸套接字.更高级别的其他东西应该为我处理那些,并处理我认为是"协议"的东西(例如,确定某些通信操作何时结束,超过套接字关闭).

大多数情况下,这是我的书.大多数低级套接字的书籍示例都是不现实的,例如"我们打开服务器的套接字并立即开始爆破表示要上传的图像的字节,然后在我们完成时关闭套接字".虽然这些例子很有效,但你在现实生活中永远不会写出类似的东西:

  • 如果您真的在套接字级别工作,那么您将实现一些希望解决身份验证,错误处理等问题的协议,即使您自己正在推出协议

  • 很少有开发人员今天直接使用套接字来进行Internet操作

现在,如果该层提供的协议是开发人员习惯的(例如,HTTP)或者即使他们没有使用它(例如,XMPP),也会很酷.而且我会满足于简单的场景(例如,N路支持很酷但不是必需的).在这方面,基于初步研究(由睡眠不足的大脑进行),ZeroMQ并不是一个糟糕的选择.与XDPP堆栈相比,它缺乏一点"品牌识别",可以使用任意套接字.但是从袖口看它似乎满足了我正在寻找的东西.

我认识到这些堆栈将受到底层传输的限制(例如,蓝牙仅适用于N路,适用于N的小值).我当然不想描绘 - 在这里或在我的书中 - 我描绘的任何解决方案都是基于套接字的通信的全部和最终结果.

我只想要一些对实际使用更加真实的祷告.奖励积分如果它是我可以理解的东西,因为我一直使用更高级别的TCP/IP通信协议,所以我缺乏直接套接字操作的经验.

java android android-wifi android-bluetooth

9
推荐指数
1
解决办法
1499
查看次数

直接连接2个或更多Android客户端

我想通过p2p连接连接2个或更多Android设备.据我所知,我可以在一个wifi网络下使用Wi-Fi Direct https://developer.android.com/guide/topics/connectivity/wifip2p.html

但我想连接位于不同地方但可能只有一个IP(vpn或其他)的Android客户端.我怎样才能做到这一点?

这是我的算法

Client_1 register its name and current IP on Server
Client_2 register its name and current IP on Server
Client_1 request registred IP from Server by Client_2 name
Client_2 request registred IP from Server by Client_1 name
Client_1 send message directly to Client_2 IP
Run Code Online (Sandbox Code Playgroud)

如果Client_1和Client_2具有相同的IP,则此算法将不起作用.或者如果客户端在NAT后面.

是否有现成的库以这种方式连接2个或更多Android设备?

networking android p2p wifi-direct

9
推荐指数
1
解决办法
287
查看次数

使用libgdx连接两个设备

我正在使用libgdx在pc和android上开发视频游戏.我想通过本地网络上的Wifi或蓝牙连接它们.想法是在p2p中玩,轻松建立这种连接.请任何人都可以提供帮助或源代码,知道连接可以是:android/android但PC/PC(因为libgdx允许)?我完全不知道.

谢谢

connection android p2p device libgdx

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