MacDev 板


LINE

※ 引述《sick09843 (咚咚毕特)》之铭言: : 请问一下各位 : 之前使用过Dropbox的api : 例如说我要新增一个目录 : Dropbox的api在新增完目录之後 : 会有一个delegate告诉我已经新增完目录了 : 目前我自己实作了一个自己的云端硬碟 : 利用http post跟get取得电脑的档案并且操作 : 不过当我新增完目录之後 : 我利用http get进行档案操作 : 不过我不知道该怎麽从server端发出一个通知告诉client端我已经完成档案操作了 : 目前一点头绪都没有 : 请问有人有类似的经验或者可以告诉我一点方向吗? : 感谢~ 如同前一篇推文所述, HTTP 本身是 synchronous 的 所以如果你要做到 callback 的效果就必须用其他方法 我目前主要可以想到三大类... 第一种方法是在 client 端实作 这个应该是最单纯的, 开个背景 thread 来传资料, 传完之後呼叫一个 callback 实作方法也有很多选择, 各有各的优缺点 最古早的 NSURLConnectionDelegate 实作 用 GCD 包一个 +sendSynchronousRequest:returningResponse:error: 或者 +sendAsynchronousRequest:queue:completionHandler: 甚至用第三方函式库例如 AFNetworking 基本上随你高兴怎麽选(不过如果要传档请注意 multipart 的设定) 第二种方法是 polling 当 client 端把档案传过去时, server 可以回覆「档案收到了, 不过我还没处理完」 (这通常是用 status code 202 来表示) 然後给 client 一个 Location header, 让 client 定时去该位址检查处理是否完成 这个方法的缺点就是 client 必须主动检查, 而非被动等待, 所以会浪费资源 或者就是放大绝, 不要用 HTTP 在 iOS 上现成的方法就是 push notification 档案上传时顺便送一个 device ID 过去, server 处理完推播一个讯息回来就行了 或者 W3C 的 WebSocket 标准也可以做到 callback, 也有人在 iOS 实作了 client 但 push notification 有即时性的问题, WebSocket...不见得值得特地搞这个 总体来讲除非你有很特殊的需求, 第一类方法还是最合理 一般服务应该也都是采用这个方式 至於要怎麽实作 callback, 你就自己把关键字丢去喂大神研究吧 ------ 补充: 第一种方法的缺点是你只能知道 client 端状态, 无法即时更新 server 状态 所以像档案处理进度这种东西基本上只能用推测的 只有在连线的一些关键时刻(尝试开始、建立连结、断开连结等等)能得到 feedback 不是说就没有缺点... -- Les grandes et les meilleurs tone from "Zadok the Priest" Eine grosse stattliche Veranstaltung by F. Handel THE MAIN EVENT! These are the men Sie sind die Besten "Champions League" by Tony Britten THESE ARE THE CHAMPIONS! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.81.146 ※ 编辑: uranusjr 来自: 114.32.81.146 (06/20 18:39)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP