workerman 做為wss客戶端,如何發(fā)送 json 數(shù)據(jù)和二進(jìn)制數(shù)據(jù)
因?yàn)檫B接后端WSS 服務(wù)器,首先需要發(fā)送 Json 認(rèn)證數(shù)據(jù)后,然后發(fā)送二進(jìn)制數(shù)據(jù)。發(fā)現(xiàn)發(fā)送 json 數(shù)據(jù)沒問題,在發(fā)送二進(jìn)制數(shù)據(jù)的時候一直報(bào)數(shù)據(jù)格式不對。這個需要如何處理,多謝。
正常來說 用 hex2bin(發(fā)送的數(shù)據(jù)) 這樣就可以,如果報(bào)格式錯誤 檢查一下 發(fā)送的數(shù)據(jù)是否是偶數(shù)。其次是發(fā)送的數(shù)據(jù)是否符合接收方的規(guī)則
嘗試了,不行。對嗎報(bào)錯:[2024-04-11 18:26:17] [error] handle_read_frame error: websocketpp.transport:7 (End of File)
注意:如果沒設(shè)置$connection->websocketType,則$connection->websocketType默認(rèn)為BINARY_TYPE_BLOB(也就是utf8文本類型)。一般應(yīng)用傳輸?shù)亩际莡tf8文本,例如傳輸?shù)氖莏son數(shù)據(jù),所以不用手動設(shè)置$connection->websocketType。只有在傳輸二進(jìn)制數(shù)據(jù)時(例如圖片數(shù)據(jù)、protobuffer數(shù)據(jù)等)才要設(shè)置此屬性為BINARY_TYPE_ARRAYBUFFER。
有沒有可能是這個原因
http://wtbis.cn/doc/workerman/appendices/about-websocket.html
這里可以做成動態(tài)的嗎? 首次連接的時候需要讀取json 數(shù)據(jù)做驗(yàn)證,后續(xù)不需要做驗(yàn)證,直接發(fā)送數(shù)據(jù)