2014-02-20 60 views
0

我想實現在iPhone APP聊天客戶端。我正在使用下面的代碼來打開套接字連接。但是我的流連接會自動經常斷開連接。會有什麼問題?如何保持連接,直到通過代碼手動關閉連接?Socket編程 - iPhone - 連接連接斷開自動

- (void) initNetworkCommunication { 

CFReadStreamRef readStream; 
CFWriteStreamRef writeStream; 

CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"111.122.123.124", (UInt32)123, &readStream, &writeStream); 

inputStream = (__bridge_transfer NSInputStream *) readStream; 
outputStream = (__bridge_transfer NSOutputStream *)writeStream; 

[inputStream setDelegate:self]; 
[outputStream setDelegate:self]; 

[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 

[inputStream open]; 
[outputStream open]; 

} 
+0

通常有超時進行讀,寫,你可以配置。也許超時間隔要短... – AntonijoDev

+0

我應該給出時間間隔? – Dev

+0

我真的不知道,我從來沒有使用過這個類,但我是使用TCP連接GCDAsyncSocket並有類似的問題,所以我的意見只是一個方向指針。通常的連接部分閒置後突破(讀/寫)期... – AntonijoDev

回答

0

如果您不使用websocket - 不發送任何數據,它通常會自動從服務器端斷開連接。

標準配置是爲約1分鐘 - 直到空閒時間的60其次,它會通過發送有效的端到端連接信息斷開客戶端從服務器。您的服務器更高的價值

檢查配置或發送心跳包每30秒保持連接。

+0

我正在使用websocket – Dev