gatewayworker里面看到:
// 當(dāng)客戶端連接上來時,設(shè)置連接的onWebSocketConnect,即在websocket握手時的回調(diào)
$gateway->onConnect = function($connection)
{
$connection->websocketType = Workerman\Protocols\Websocket::BINARY_TYPE_ARRAYBUFFER;
}
如果啟用gzip壓縮,則這里設(shè)置成BINARY_TYPE_ARRAYBUFFER,不過設(shè)置后,就變成這個用戶的連接永久都是這個傳輸類型了,對于小文本,幾個字符串的那種,想著就沒必要gzip壓縮了,請問是否能夠在傳輸小文本的時候,動態(tài)改變這個$connection->websocketType,變?yōu)槟J(rèn)的UTF8字符串傳輸呢?傳輸大文本如幾十KB那種,再通過gzip壓縮,動態(tài)設(shè)置為BINARY_TYPE_ARRAYBUFFER
另外如果可以動態(tài)改變的話,請問如何操作,使得H5頁面js,能夠做到這種通訊呢?
還請各位高手能夠指點一下,謝謝~
BINARY_TYPE_ARRAYBUFFER本身也是可以傳輸json的
你在web客戶端轉(zhuǎn)一下就可以
var dataStrJson = String.fromCharCode.apply(null, new Uint8Array(e.data));
var data = JSON.parse(dataStrJson);