node-socket-sync-buffer
同步操作socket, 基于 promise, 见例子 examples
网址: https://github.com/mailhonor/node-socket-sync-buffer
基本用法
npm i socket-sync-buffer
创建对象
const socketSyncBuffer = require("socket-sync-buffer").socketSyncBuffer
let socket = new socketSyncBuffer({ host: "127.0.0.1", port: 465, ssl: false, timeout: 0 })
连接
返回值是 boolean 类型, 返回 false 表示连接失败, 返回 true 表示成功
let res = await socket.connect()
读数据
返回 null 表示网络失败, 或连接关闭, 否则表示成功, 类型为 Buffer
let res = await socket.gets()
let res = await socket.readDelimiter("\n")
let res = await socket.readDelimiter(delimiter: string, maxSize: number = 0)
let res = await socket.readn(size: number)
let res = await socket.read()
写数据
返回值是 boolean 类型, 返回 false 表示网络错误,或连接关闭,返回 true 表示成功
let res = await socket.write(str: string)
let res = await socket.writeBuffer(buf: Buffer)
let res = await socket.flush()
发起 ssl 连接
返回值是 boolean 类型, 返回 false 表示网络错误,或连接关闭,返回 true 表示成功
let res = await socket.tlsConnect()
属性
返回值是 boolean 类型
let res = socket.isError()
let res = socket.isTimeout()
let res = socket.isClosed()
其他可读
await trueDataReadable()
有的时候服务会主动返回数据, 用下面这个方法检测
执行一次, 只生效一次, 可读或出错的时候执行 handler,
如果 handler 为 undefined, 则使用上一次的 handler
void setOnExtraDataReadableHandlerOnce(handler: (() => any) | undefined)