1

私はsocket.ioでいくつかの実験を行っています。データを正常に受信するサーバーにデータを正常に送信するキャンバスがあります。

それが送信されているため、正しい Uint8ClampedArray を受け取ります。

このメッセージをサーバーからクライアントに送信すると、[object Object] という文字列が返されます。改めて確認しました!サーバーのコードは次のとおりです。

var fs, http, io, server;
fs = require('fs');
http = require('http');
server = http.createServer(function(req, res) {
    return fs.readFile("" + __dirname + "/front.html", function(err, data) {
        res.writeHead(200, {
            'Content-Type': 'text/html'
        });
        return res.end(data, 'utf8');
    });
});
server.listen(1337);
io = require('socket.io').listen(server);
io.sockets.on('connection', function(socket) {
    socket.on('publish', function(message) {
         return io.sockets.send(message);
    });
});
4

2 に答える 2

9

クライアント上:

var dataStr = JSON.stringify(data); // converts object to string

サーバー上:

var dataObj = JSON.parse(data); // converts string to object
于 2013-05-13T07:14:38.817 に答える
2

唯一の方法はUint8ClampedArray、クライアント サイズで再利用することです。サーバー側にこれがある場合

var x = new Uint8ClampedArray(3);
x[0] = -17;
x[1] = 93;
x[2] = 350;
var dataThatWillBeSent = JSON.stringify(x);
// '{"0":0,"1":93,"2":255,"length":3,"byteLength":3,"byteOffset":0,"buffer":{"byteLength":3}}'

あなたのクライアント側では、あなたが含まれていると仮定すると、Uint8ClampedArrayこれを行うことができます

var dataReceived = '{"0":0,"1":93,"2":255,"length":3,"byteLength":3,"byteOffset":0,"buffer":{"byteLength":3}}';
dataReceived = JSON.parse(dataReceived);
// reconstruct Uint8ClampedArray object

私はUint8ClampedArray以前に使用したことがないので、JSON データからオブジェクトを復元する方法が正確にはわかりませUint8ClampedArrayんが、ドキュメントを読めば何かを理解できるかもしれません

于 2013-05-15T06:53:46.537 に答える