作者ibonek (答案是田螺)
看板MacDev
標題Re: [問題] Bonjour+CFStream
時間Tue May 17 00:27:00 2011
: 不過範例跑起來有個問題:選擇了聊天室後,連線卻要等1分鐘左右才會建立
: 但建立連線後聊天訊息傳遞得很順暢且很即時,中間的空白時間不曉得發生什麼事了?
: 想解決連線等待時間太長的問題
後來看官方文件
http://0rz.tw/QsfXJ才知道問題:
CFWriteStreamOpen(myWriteStream)是一件耗時的process
為了避免block,雖然會馬上傳送TRUE,但實際myWriteStream卻還在建立
後來用CFReadStreamGetStatus+while迴圈去看狀態
會一直都是kCFStreamStatusOpening,一分鐘後stream建立,狀態才會變成開啟完成
開啟完成後,指定的callback才會被啟動,連線才建立起來
最後改用NSStream解決,連線馬上就建立了
但還是不懂為什麼CFStream建個連線要這麼久...
留給遇到相同問題的人一個參考
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.152.152
1F:推 ryanliang:推一個~ 我也是用NSStream去實作 CFStream沒試用過 05/17 12:30