Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 直接从uWebsockets服务器读取UINT8阵列_Javascript_C++_Websocket - Fatal编程技术网

Javascript 直接从uWebsockets服务器读取UINT8阵列

Javascript 直接从uWebsockets服务器读取UINT8阵列,javascript,c++,websocket,Javascript,C++,Websocket,我正在尝试使用uWebSockets库读取从web客户端发送的二进制ArrayBuffer数据 我发现了一个关于回购问题的问题,该问题描述了文本/blob数据的情况,但我想解析来自web客户端的uint8array数据: 我使用的是非常简单的示例客户端: int main() { uWS::Hub h; h.onMessage([](uWS::WebSocket<uWS::SERVER> *ws, char *message, size_t length,

我正在尝试使用uWebSockets库读取从web客户端发送的二进制ArrayBuffer数据

我发现了一个关于回购问题的问题,该问题描述了文本/blob数据的情况,但我想解析来自web客户端的uint8array数据:

我使用的是非常简单的示例客户端:

int main()
{
    uWS::Hub h;

    h.onMessage([](uWS::WebSocket<uWS::SERVER> *ws, char *message, size_t length, uWS::OpCode opCode) {
        uint8_t messageString [length]; //Create char array with length of message length
        cout << "length: " << length << endl;
        for (int i = 0; i < length; i++) { //Iterate through each character in the message
          messageString[i] = (uint8_t)message[i];   //Add message character to messageString
        }
        cout << "Message: " << &messageString[1] << endl;

        ws->send (message, length, opCode);
    });

    h.listen (3000);
    h.run();
}

然后将
uint8array
发送到套接字。text/blob示例不起作用,试图将其作为
uint8\u t
数组来读取是不起作用的,我一辈子都不知道如何读取它,以便数据可用。请注意,返回到客户端的回显确实有效-我将返回我输入的内容。

从客户端读取数据并对其作出响应非常简单:

h.onMessage([](uWS::WebSocket<uWS::SERVER> *ws, char *message, size_t, length, uWS::OpCode opCode) {
    std::string receivedMessage(message, length);
    ws->send("Reponse from server", uWS::OpCode::BINARY);
});
h.onMessage([](uWS::WebSocket*ws,char*message,大小,长度,uWS::操作码){
std::字符串receivedMessage(消息,长度);
ws->send(“从服务器响应”,uWS::操作码::二进制);
});
h.onMessage([](uWS::WebSocket<uWS::SERVER> *ws, char *message, size_t, length, uWS::OpCode opCode) {
    std::string receivedMessage(message, length);
    ws->send("Reponse from server", uWS::OpCode::BINARY);
});