假设我们有一群10人,彼此距离不到20米。每个人都有一部手机(iPhone / android / Windows手机)。
一个人点击屏幕发送信息。
这是其他人立即注册的。同步是关键。它必须在几毫秒内命中所有目标设备。
我怎么能这样做?
我在Unity3D工作,虽然它允许移动插件我可以按平台单独实现。
仍然有兴趣使用仅支持iPhone的解决方案。
编辑:请不要只说'使用蓝牙'
编辑:改写问题的一种方法:是否可以设置一堆手机,以便在它们之间发送UDP数据包? (Ad-Hoc网络?)
编辑:链接: Transfer NSString between two devices via bluetooth in iOS Transfer data between iOS and Android via Bluetooth?
答案 0 :(得分:0)
对于Android,'WiFi-Direct'将完美地做到这一点。
对于iphone,“Multipeer Connectivity”可能就是你想要的。
我是一名Android开发者,对iphone不是很熟悉。据我所知,Wifi-Direct使用wifi,Multipeer Connectivity使用蓝牙。
并且,iphone可以连接到android WiFi-Direct soft ap。
希望这会有所帮助。答案 1 :(得分:0)
OSC您可以实时向同一个wifi网络中的所有设备广播。
有一段时间没有使用它,但这可能会有所帮助: https://github.com/jorgegarcia/UnityOSC
答案 2 :(得分:0)
这需要进行一些实验,但如果您可以将手机作为外围设备连接到一台设备,同时作为另一台设备的主设备,则可以建立一个环网,将所有数据传输到所有手机
老实说,你应该只连接到wifi网络(路由器)。除非您的项目的目的是构建一个围绕网络架构的工作。我假设使用wifi热点功能将无法在现成的iphone上工作,因为它被监禁了。最重要的是,用于执行此类操作的API未出现在文档中。
祝你好运,如果你想办法做到这一点,听听它会很棒。
答案 3 :(得分:0)
不确定"毫秒"同步是可行的,但对于跨平台发现部分,您可以使用诸如http://p2pkit.io之类的SDK来抽象发现附近设备的所有复杂工作流程。
免责声明:我为Uepaa开发适用于iOS和Android的p2pkit。
答案 4 :(得分:0)
根据地理位置,使用UNET创建一个运行UNET的专用服务器和一个位置聊天室。
答案 5 :(得分:-1)
音频解决方案似乎是一种非常独特的技术。我不能说我曾经听说过以这种方式去做,但似乎是合法的。唯一的问题是它可能因麦克风质量而失去准确性。我做了一些研究,发现了一种在c#中播放正弦/方波声音的方法(假设你没有使用javascript来统一)。以下是播放它们的一个例子:
int sampRate = 10000;
short[] buf = new short[10000];
double ampl = 0.25 * short.MaxValue;
double freq = 5000;
for (int s = 0; s < buf.Length; s++){
buffer[s] = (short)(ampl * Math.Sin((2 * Math.PI * s * freq) / sampleRate));
}
至于获得声音并验证它是否匹配,我感到难过,那就是我的知识结束的地方,但我知道它可能,但可能需要更多的工作而不是它的价值。
要回答您的主要问题,最简单的方法是蓝牙。