理解できない WebSocket の問題に対処しています。
以下のコードを参考にしてください。
int write_buffer_size = 8000 +
                LWS_SEND_BUFFER_PRE_PADDING +
                LWS_SEND_BUFFER_POST_PADDING;
char *write_buffer = new unsigned char[write_buffer_size];
/* ... other code
   write_buffer is filled in some way that is not important for the question
*/
n = libwebsocket_write(wsi, &write_buffer[LWS_SEND_BUFFER_PRE_PADDING], write_len,
            (libwebsocket_write_protocol)write_mode);
    if (n < 0) {
        cerr << "ERROR " << n << " writing to socket, hanging up" << endl;
        if (utils) {
            log = "wsmanager::error: hanging up writing to websocket";
            utils->writeLog(log);
        }
        return -1;
    }
    if (n < write_len) {
        cerr << "Partial write: " << n << " < " << write_len << endl;
        if (utils) {
            log = "wsmanager-error: websocket partial write";
            utils->writeLog(log);
        }
        return -1;
    }
7160 バイトより大きいデータを送信しようとすると、常に同じエラーが表示されます。たとえば、Partial write: 7160 < 8000です。
その行動について何か説明はありますか?
ペイロード用に 8000 バイトのバッファを割り当てたので、最大 8K のデータを送信できると予想していましたが、送信できるデータの最大量は 7160 (バイト) のようです。
どんな助けでも大歓迎です、ありがとう!