Ai
1 Star 0 Fork 0

毕升Office/go-socket.io

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
util.go 1.40 KB
一键复制 编辑 原始数据 按行查看 历史
package payload
import "bytes"
func writeBinaryLen(l int64, w *bytes.Buffer) error {
if l <= 0 {
if err := w.WriteByte(0x00); err != nil {
return err
}
if err := w.WriteByte(0xff); err != nil {
return err
}
return nil
}
max := int64(1)
for n := l / 10; n > 0; n /= 10 {
max *= 10
}
for max > 0 {
n := l / max
if err := w.WriteByte(byte(n)); err != nil {
return err
}
l -= n * max
max /= 10
}
return w.WriteByte(0xff)
}
func writeTextLen(l int64, w *bytes.Buffer) error {
if l <= 0 {
if err := w.WriteByte('0'); err != nil {
return err
}
if err := w.WriteByte(':'); err != nil {
return err
}
return nil
}
max := int64(1)
for n := l / 10; n > 0; n /= 10 {
max *= 10
}
for max > 0 {
n := l / max
if err := w.WriteByte(byte(n) + '0'); err != nil {
return err
}
l -= n * max
max /= 10
}
return w.WriteByte(':')
}
func readBinaryLen(r byteReader) (int64, error) {
ret := int64(0)
for {
b, err := r.ReadByte()
if err != nil {
return 0, err
}
if b == 0xff {
break
}
if b > 9 {
return 0, errInvalidPayload
}
ret = ret*10 + int64(b)
}
return ret, nil
}
func readTextLen(r byteReader) (int64, error) {
ret := int64(0)
for {
b, err := r.ReadByte()
if err != nil {
return 0, err
}
if b == ':' {
break
}
if b < '0' || b > '9' {
return 0, errInvalidPayload
}
ret = ret*10 + int64(b-'0')
}
return ret, nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ibisheng/go-socket.io.git
git@gitee.com:ibisheng/go-socket.io.git
ibisheng
go-socket.io
go-socket.io
f22f23ac6ef8

搜索帮助