workerman 做为wss客户端,如何发送 json 数据和二进制数据
因为连接后端WSS 服务器,首先需要发送 Json 认证数据后,然后发送二进制数据。发现发送 json 数据没问题,在发送二进制数据的时候一直报数据格式不对。这个需要如何处理,多谢。
正常来说 用 hex2bin(发送的数据) 这样就可以,如果报格式错误 检查一下 发送的数据是否是偶数。其次是发送的数据是否符合接收方的规则
尝试了,不行。对吗报错:[2024-04-11 18:26:17] [error] handle_read_frame error: websocketpp.transport:7 (End of File)
注意:如果没设置$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
这里可以做成动态的吗? 首次连接的时候需要读取json 数据做验证,后续不需要做验证,直接发送数据
正常来说 用 hex2bin(发送的数据) 这样就可以,如果报格式错误 检查一下 发送的数据是否是偶数。其次是发送的数据是否符合接收方的规则
尝试了,不行。对吗报错:[2024-04-11 18:26:17] [error] handle_read_frame error: websocketpp.transport:7 (End of File)
注意:如果没设置$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
这里可以做成动态的吗? 首次连接的时候需要读取json 数据做验证,后续不需要做验证,直接发送数据