sock.receive("'*l")读取sse请求数据时,返回的数据里多出来1a 5c这样的字符

47 views
Skip to first unread message

刘东旭

unread,
Jun 10, 2022, 5:17:00 AM6/10/22
to openresty
正常的数据应该是这样的:

event:test123 \n
id:123 \n
data: \n
{"timestamp":0,"payload":{"timestamp":"2022-06-10T16:17:29.787"},"from":"SERVER","to":"123"} \n\n

但是收到的数据确实这样的:

1a \n
event:test123 \n
id:123 \n
data: \n
5c\n
{"timestamp":0,"payload":{"timestamp":"2022-06-10T16:17:29.787"},"from":"SERVER","to":"123"}\n
2 \n
\n\n

红色部分是多出来的字符,"\n"代表的是换行。

Junlong Li

unread,
Jun 11, 2022, 8:09:09 PM6/11/22
to openresty

请问你使用的是什么版本的openresty?

能不能给一个可以复现的案例?

刘东旭

unread,
Jun 13, 2022, 3:57:03 AM6/13/22
to openresty
openresty版本:nginx version: openresty/1.15.8.1

sse请求用的是这个sse.lua 库: https://github.com/wojons/lua-resty-sse

刘东旭

unread,
Jun 13, 2022, 4:49:54 AM6/13/22
to openresty

Junlong Li

unread,
Jun 13, 2022, 7:39:47 PM6/13/22
to openresty
你可以使用最新的1.21.4.1 版本的openresty试试看,可能是已经修过的bug。

刘东旭

unread,
Jun 16, 2022, 4:00:01 AM6/16/22
to openresty
是引用的 https://github.com/wojons/lua-resty-sse这里的sse.lua的bug问题,重新实现后问题已解决。

以下实现已经验证没有问题了。

Junlong Li

unread,
Jun 16, 2022, 10:58:40 AM6/16/22
to openresty

好极了,你可以提交PR给原来的仓库,这样更多人受益

刘东旭

unread,
Jun 29, 2022, 9:00:59 AM6/29/22
to openresty

好嘞,非常感谢!
Reply all
Reply to author
Forward
0 new messages