首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接收ArrayBuffer on WebSocket (ws)

接收ArrayBuffer on WebSocket (ws)
EN

Stack Overflow用户
提问于 2016-08-26 20:21:55
回答 1查看 15.6K关注 0票数 6

我想使用ArrayBuffer处理从客户端接收到的ws消息。客户端,由于ws.binaryType,而不是服务器端,我直接接收到ArrayBuffer,我不接收ArrayBuffer,而是类似于这样的东西(字符串?):“<缓冲器00 2a 00 00 00 >”。

服务器如何接收ArrayBuffer?

客户端:

代码语言:javascript
复制
var ws = new WebSocket("ws://localhost:3000/");
ws.binaryType = 'arraybuffer';
ws.onopen = function() {
    var buffer = new ArrayBuffer(15);
    var dv = new DataView(buffer);
    dv.setInt16(1, 42);
    ws.send(buffer);
};

服务器端:

代码语言:javascript
复制
var express = require('express'),
app = express(),
server = require('http').createServer(),
WebSocketServer = require('ws').Server,
wss = new WebSocketServer({
    server: server
});

...

wss.on('connection', function(socket) {
    console.log(message);
    //log : <Buffer 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 00 00>


    socket.on('message', function(message) {

        //would like to read and handle the arraybuffer properly

    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-26 23:08:24

只需要将缓冲区转换为ArrayBuffer

代码语言:javascript
复制
var buf = new Uint8Array(message).buffer;
var dv = new DataView(buf);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39174139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档