iOS中使用text/event-stream数据流实现后端SSE数据推送
最近在做通过http请求实现后端一条一条一条消息推送,达到gpt那种搜索的展示的效果
客户端这边设置很简单,只需要设置请求头
[request addValue:@"text/event-stream" forHTTPHeaderField:@"Accept"];
项目网络库用的AFN,经调研发现AFN不支持这个请求,最后选择了系统的
NSURLSession来做,这个需要服务端已经配置好了相关域名,否则当作是普通的http请求一次性获取所有结果
第一大坑:回调每次不一定都是一条完整的数据,安卓端和PC都没这个问题,他们获得数据每次都是完整的一条数据,我们需要特殊处理
[self.mutableTotalData appendData:data];
然后再一条一条取
第二大坑:字符串截取后由于转义字符的问题,无法正常json解析
浙公网安备 33010602011771号