【问题标题】:Parsing the data from Socket.IO in the Flash client在 Flash 客户端中解析来自 Socket.IO 的数据
【发布时间】:2011-12-18 09:11:36
【问题描述】:

在服务器 node.js 和模块 Socket.IO 上使用。 数据发送如下:

  var tests = [555, 777];

  client.send("Test string"); //first message
  client.send({tests:tests}); //second message

如果这是一个文本字符串(第一条消息),则数据显示正确。 但如果是 JSON(第二条消息),则无法解析结果对象。

protected function onMessage(event:FlashSocketEvent):void{

txt.text += event.data;  //[object Object]
txt.text += event.data.tests; //undefined
txt.text += event.data['tests'];  //undefined

            }

我使用https://github.com/gimite/web-socket-jshttps://github.com/simb/FlashSocket.IO

【问题讨论】:

    标签: javascript node.js actionscript-3 websocket socket.io


    【解决方案1】:

    对于 Socket.IO,您似乎可以使用 client.send() 来获取纯字符串消息,并尝试查看 client.emit() 来传输 json:socket.emit vs socket.send

    特别是,第二个响应说:

    socket.emit 允许您在服务器和客户端上发出自定义事件

    socket.send 发送与消息事件一起接收的消息

    【讨论】:

    • 谢谢瓦西洛。更好。如果我使用 client.emit() 控制台日志是“调试 - flashsocket 写入 5:::{"name":{"tests":[555,777]}}。"但是类型 5 是注释 JSON (4),但是事件 github.com/LearnBoost/socket.io-spec#Encoding 并且我无法解析这一行。
    • 您打的电话是什么?试试 client.emit('Test string', {'tests': tests})。从文档来看,当您调用 emit 时,您的第一个参数是消息的名称,第二个调用应该是消息的 json。
    • 如果我调用 client.emit('Test string', {'tests': tests}),控制台会写“debug - flashsocket writing 5:::{"name":"Test string", “参数”:[{“测试”:[555,7 77]}]}”。现在我只是根据上面链接中的示例测试文本聊天。
    【解决方案2】:

    解决添加json属性的问题

    client.json.send

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 2020-05-02
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多