首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS套接字数据拆分

NodeJS套接字数据拆分
EN

Stack Overflow用户
提问于 2012-05-07 23:47:21
回答 1查看 7.6K关注 0票数 3

当我需要拆分数据时,我必须将其转换为字符串。

下面是我的数据处理函数:

代码语言:javascript
复制
  socket.on('data', function (data) {
    var str = data.toString().split("|");
    switch(str[0]){
        case "setUser":
        setUser(str[1], socket);
        break;
        case "joinChannel":
        joinChannel(str[1], socket);
        break;
    }

  });

当我从AS3客户端发送像"setUser|Name“这样的数据,然后发送"joinChannel|main”这样的数据时。NodeJS将其作为一个数据包读取。

我的问题是如何使其成为两个不同的数据包?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-07 23:56:50

通常,您会将所有数据缓冲在一起,然后将其解析为一个字符串。或者,如果您需要在传入时拆分它,那么您可以在data回调中进行拆分,并跟踪任何剩余的部分命令,以便在接收到的net块之前添加。

代码语言:javascript
复制
var data = '';
socket.setEncoding('utf8');
socket.on('data', function(chunk) {
  data += chunk;
});
socket.on('end', function() {

  var lines = data.split('\n');
  lines.forEach(function(line) {
    var parts = line.split('|');
    switch (parts[0]) {
      case 'setUser':
        setUser(str[1], socket);
        break;
      case 'joinChannel':
        joinChannel(str[1], socket);
        break;
    }
  });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10485060

复制
相关文章

相似问题

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