deepexi_sse_utlis
与客户端建立长连接,解决需要需要轮询的困境。与webscoket不同的是,sse只是http协议,且只能有服务端发送通讯。
注意:node http连接默认2分钟会超时,如服务端连接发送事件的间隔需超过2分钟,需服务端自行处理(设置timeout时间 or 在2分钟的间隔内发送无效事件)
how to install
npm install deepexi_sse_utils
how to use
单次发送消息(如状态需实时返回给前端)
const SSEUtils = ;# server为服务端,监听请求server; { return { const stream = SSEUtils; resbody = stream; };}
其他情况发送消息(非单次,或者其他任意情况)
const SSEUtils = ;# server为服务端,监听请求server; { let interval = null; return { const stream = SSEUtils; resbody = stream; };}
API
Methods
方法名 | 说明 | 参数 |
---|---|---|
send | 与客户端建立长连接,返回值是 stream对象 | optsions选项 options.setResHeader 设置请求头function,required options.sendType once单次 repeat重复 other其他,默认发送一次 options.sender 消息发送者,处理什么时候发送消息和结束发送消息,参数send func,结束需要发送'sseEnd'消息,非一次使用 options.onceMsg 单次发送消息主体,默认是'' options.retry 长连接发送错误时,重试频率,毫秒, 默认10s options.msgReplace 无法处理消息带换行符的情况,提供替换的正则,默认为'' options.finishCb stream结束时钩子函数 |
Events
事件名称 | 说明 | 参数 |
---|---|---|
sseEnd | 客户端接收到sseEnd事件,说明通讯已结束 |