workerman 做为wss客户端,如何发送 json 数据和二进制数据

talentstone

问题描述

workerman 做为wss客户端,如何发送 json 数据和二进制数据

为此你搜索到了哪些方案及不适用的原因

因为连接后端WSS 服务器,首先需要发送 Json 认证数据后,然后发送二进制数据。发现发送 json 数据没问题,在发送二进制数据的时候一直报数据格式不对。这个需要如何处理,多谢。

219 2 0
2个回答

shanyi

正常来说 用 hex2bin(发送的数据) 这样就可以,如果报格式错误 检查一下 发送的数据是否是偶数。其次是发送的数据是否符合接收方的规则

  • talentstone 2024-04-11

    尝试了,不行。对吗报错:[2024-04-11 18:26:17] [error] handle_read_frame error: websocketpp.transport:7 (End of File)

W丶

注意:如果没设置$connection->websocketType,则$connection->websocketType默认为BINARY_TYPE_BLOB(也就是utf8文本类型)。一般应用传输的都是utf8文本,例如传输的是json数据,所以不用手动设置$connection->websocketType。只有在传输二进制数据时(例如图片数据、protobuffer数据等)才要设置此属性为BINARY_TYPE_ARRAYBUFFER。
有没有可能是这个原因
https://www.workerman.net/doc/workerman/appendices/about-websocket.html

  • talentstone 2024-04-12

    这里可以做成动态的吗? 首次连接的时候需要读取json 数据做验证,后续不需要做验证,直接发送数据

🔝