use CFSocket to avoid crashing issue when chatting