首页 > 其他分享 >iOS中使用text/event-stream数据流实现后端SSE数据推送

iOS中使用text/event-stream数据流实现后端SSE数据推送

时间:2024-04-15 18:44:23浏览次数:34  
标签:一条 请求 stream text iOS 推送 event

最近在做通过http请求实现后端一条一条一条消息推送,达到gpt那种搜索的展示的效果

客户端这边设置很简单,只需要设置请求头

[request addValue:@"text/event-stream" forHTTPHeaderField:@"Accept"];

项目网络库用的AFN,经调研发现AFN不支持这个请求,最后选择了系统的

NSURLSession来做,这个需要服务端已经配置好了相关域名,否则当作是普通的http请求一次性获取所有结果

第一大坑:回调每次不一定都是一条完整的数据,安卓端和PC都没这个问题,他们获得数据每次都是完整的一条数据,我们需要特殊处理

 [self.mutableTotalData appendData:data];

然后再一条一条取

第二大坑:字符串截取后由于转义字符的问题,无法正常json解析

 

标签:一条,请求,stream,text,iOS,推送,event
From: https://www.cnblogs.com/lindon/p/18136697

相关文章

  • 实现iOS App代码混淆
     简介在开发iOS应用程序时,保护代码安全是至关重要的。代码混淆是一种常用的技术,可以增加逆向工程的难度,防止他人对代码的篡改和盗用。本文将介绍如何实现iOSApp代码混淆的步骤和操作方法。整体流程下面是实现iOSApp代码混淆的整体流程: 接下来,我们将逐步介绍每个步骤的具......
  • 一款功能齐全的iOS混淆工具介绍及功能详解
    ​机缘巧合偶遇iOS马甲包业务,前期也使用过目前市面上其他得工具,实际效果不太理想。经过大量实践,开发出一款功能齐全的混淆工具。工具的主要功能OC、C++、Swift已封装成Mac应用,其他功能还在封装中,敬请期待。马甲包的本质:阶段一减低重复率,本人开发初期的版本和目前市面上的其......
  • WPF ContextMenu MenuItem style based on
    <Windowx:Class="WpfApp58.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......
  • IOS 为Mac(catalyst)和iOS 设置不同的Settings.bundle。
    一、说明。   iOS的Settings.bundle是App的一个配置项,通过配置Settings.bundle,用户可以修改App的运行环境,显示App的授权信息等。默认情况下,新建的项目程序是没有Settings.bundle的,需要手动添加。在添加Settings.bundle后,用户可以在“设置”中找到对应的App,进而看到Settings.......
  • axios 重复提交
    const{default:axios}=require("axios")constqs=require('qs')functionregsoleKey(config){const{method,url,params,data}=config;return[method,url,qs.stringify(params),qs.stringify(data)].join('&')......
  • IOS开发——调用相册崩溃闪退的异常情况处理
    软件版本:Xcode14.2测试手机:iPhone 6S Plus IOS版本:15.8.2AppStoreConnect反馈如下:Xcode打开反馈内容:问题解析:看着这么多内容,网上的说法也有很多,但首先要看下工程中有没有引入DCTZImagePickerController,如果没有,那么找到SDK中的DCTZImagePickerController.bundle文件......
  • 【合合TextIn】智能文档处理系列—电子文档解析技术全格式解析
    一、引言在当今的数字化时代,电子文档已成为信息存储和交流的基石。从简单的文本文件到复杂的演示文档,各种格式的电子文档承载着丰富的知识与信息,支撑着教育、科研、商业和日常生活的各个方面。随着信息量的爆炸性增长,如何高效、准确地处理和分析这些电子文档,已经成为信息技术领......
  • 聊聊 Redis Stream
    RedisStream是Redis5.0版本中引入的一种新的数据结构,它用于实现简单但功能强大的消息传递模式。这篇文章,我们聊聊RedisStream基本用法,以及如何在SpringBoot项目中应用RedisStream。1基础知识RedisStream的结构如下图所示,它是一个消息链表,将所有加入的消息都......
  • TextIn合合信息的API使用心得
    在大学生服务外包杯的比赛中,我们组选了A29的赛题,是合合信息公司发布的赛题该赛题的意图是让我们使用它们公司开发的大模型api接口解决现实中的问题,在textin中的api接口中主要包含了以下几个方面的产品1.通用文字识别2.图像处理3.车辆相关识别4.国内票据识别等等我们组开发应用......
  • 13-axios 传递参数的方式(data 与 params 的区别)
    Axios官方网址:起步|Axios中文文档|Axios中文网(axios-http.cn)参考文章:axios传递参数的方式(data与params的区别)-知乎(zhihu.com) Axiosa大家都非常的清楚,一个既可以用于客户端或者 服务端发送http请求的库。但是在前后端联调的时候有的时候会很难受,所以这里我......