【问题标题】:How to send multiple sets of data through multipeer connectivity如何通过多点连接发送多组数据
【发布时间】:2015-11-08 23:19:07
【问题描述】:

我希望能够使用

appDelegate.mpcHandler.session.sendData 

但是在接收端没有办法获得相同的变量,例如,据我所知,要接收任何数据,你必须写这样的东西

func session(session: MCSession!, didReceiveData data: NSData!, fromPeer peerID: MCPeerID!) {
    NSLog("%@", "didReceiveData: \(data.length) bytes")
    let str = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
} 

是否有其他人知道在多点连接中发送和接收多组数据的任何方式,因为我希望能够不断地流式传输歌曲持续时间,但在歌曲开始时我需要发送歌曲名称。

【问题讨论】:

    标签: ios swift bluetooth encode multipeer-connectivity


    【解决方案1】:

    您可以通过将字典转换为 NSData 来发送字典,如下所示:

            let data = NSKeyedArchiver.archivedDataWithRootObject(dictionary)
    

    在接收端,它看起来像这样:

    override func session(session: MCSession, didReceiveData data: NSData, fromPeer peerID: MCPeerID) {
        let dictionary = NSKeyedUnarchiver.unarchiveObjectWithData(data) as! Dictionary<String, AnyObject>
        NSLog("Peer \(peerID) has sent message \(dictionary)")
        .....
    }
    

    这将允许您发送初始数据。然后你会使用

    - startStreamWithName:toPeer:error:
    

    开始发送流。这将创建一个连接的字节流 (NSOutputStream),您可以使用它向指定的对等方发送数据。

    【讨论】:

    • 是否有任何博客文章可以更好地解释如何在多点连接中使用流,因为框架参考没有详细说明,我不太明白我会在流函数中放入什么例如,定期发送一个整数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 2011-09-13
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    相关资源
    最近更新 更多