【问题标题】:Spacebrew (locally) + Arduino Yun + web page - "subscriber" not workingSpacebrew(本地)+ Arduino Yun + 网页 - “订阅者”不起作用
【发布时间】:2014-03-21 23:45:32
【问题描述】:

我的 Spacebrew 设置需要一些帮助。 我有一个在 Arduino Yun 上运行的小应用程序,它将数据从输入设备发送到在同一网络内我的笔记本电脑上运行的 Spacebrew 服务器。然后,我在作为订阅者连接到 Spacebrew 服务器的同一台笔记本电脑上有一个简单的 html+js 网页。出于某种原因,我无法通过网络应用程序“读取”任何传入数据 - 订阅者失败。 我做了很多调试(一整天),但我无法跟踪错误,但我确信它与我的机器(或任何其他依赖模块)上设置的 Spacebrew 有关。

这是我的调试、信息和结论:

  • 运行连接到公共 Spacebrew 服务器的同一个应用程序工作正常 (sandbox.spacebrew.cc),这意味着我的 arduino 代码和 html+js 是 正确。

  • 当同时切换到我的本地 Spacebrew 设置时, 订阅者似乎由于某种原因失败了。

  • 我在本地有一个这样的管理页面 (http://spacebrew.github.io/spacebrew/admin/admin.html?server=sandbox.spacebrew.cc), 我可以在上面看到我的客户和订阅者,我可以同时连接它们 用“线”,所以他们应该互相交谈(见截图 附)。

  • 我的客户 (Arduino Yun) 每秒发送一次数据,“点”在 管理屏幕每秒闪烁一次。

  • 我的订阅者 (html+js) 在“onOpen”命令后停止,但是当 连接到 sandbox.spacebrew.cc 它更进一步到“onRangeMes​​sage” (见附件html+js代码)

  • 使用 -l 参数(调试)在本地运行 Spacebrew 时,我看不到任何 错误,一切似乎都很好(请参阅附加的控制台响应)

  • 要在本地安装 Spacebrew 我用过 npm,我也安装了 像永远监视器和ws这样的依赖项,我遵循了这个步骤 页面:https://github.com/Spacebrew/spacebrew

  • 我的节点版本是v0.10.6

  • 我的系统是 Mac OS X 10.6.8

  • 我还在同一台机器上运行 Apache 和少数其他服务器(imap、ldap、mysql、...),但我怀疑这可能是一个问题,因为我在端口 9000 上运行 Spacebrew

附件:

JS 代码:

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script src="sb-1.2.0.js"></script>
    <script type="text/javascript">

    var sb = new Spacebrew.Client( '10.5.203.66', 'lokers-photoresistor', 'description', {'port':9000, 'debug':1, 'reconnect':1} );
    sb.addSubscribe( 'brightness', 'range' );

    sb.onStringMessage = function onString( name, value ) {
        console.log('onStringMessage');
        console.log(name);
        console.log(value);
        console.log('-------------------');
    };
    sb.onRangeMessage = function onRange( name, value ) {
        console.log('onRangeMessage');
        console.log(name);
        console.log(value);
        console.log('-------------------');
    };
    sb.onBooleanMessage = function onBoolean( name, value ) {
        console.log('onBooleanMessage');
        console.log(name);
        console.log(value);
        console.log('-------------------');
    };
    sb.onCustomMessage = function onBoolean( name, value, type ) {
        console.log('onCustomMessage');
        console.log(name);
        console.log(value);
        console.log(type);
        console.log('-------------------');
    };
    sb.onOpen = function onOpen() {
        console.log('onOpen');
        console.log('-------------------');
    };
    sb.onClose = function onClose() {
        console.log('onClose');
        console.log('-------------------');
    };

    sb.connect();

    </script>
</head>
<body>
</body>
</html>

Spacebrew 调试:

info: [pingAllClients] setting validated = false
info: [pingAllClients] setting validated = false
info: [pingAllClients] setting validated = false
info: [wss.onmessage] new message received {"message": {"value": "155", "type": "range", "name": "brightness", "clientName": "lokers-photoresistor-check"}}
info: [handleMessageMessage] message sent to: 'lokers-photoresistor' msg: {"message":{"name":"brightness","type":"range","value":"155","clientName":"lokers-photoresistor"}}
info: [handleMessageMessage] message sent to: 'lokers-photoresistor-graph' msg: {"message":{"name":"line1","type":"range","value":"155","clientName":"lokers-photoresistor-graph"}}
info: [receivedMessage] received new message from spacebrew server: 
info: {"message":{"value":"155","type":"range","name":"brightness","clientName":"lokers-photoresistor-check","remoteAddress":"10.5.228.249"}}

Spacebrew 管理员截图:

【问题讨论】:

  • 经过更多调试后,使用调试“node node_server_forever.js --loglevel debug”运行 spacebrew 时。我看到这条消息:“警告:[pingAllClients] 无法 PING 客户端,连接已经关闭”

标签: node.js websocket arduino


【解决方案1】:

我在 Spacebrew Google Group (https://groups.google.com/forum/#!topic/spacebrew-cc/uxzPQFqFN-4) 上创建了一个主题。我在安装 EC2 时遇到了与订阅者类似的问题。后续帖子在 beagle bone black 服务器上引用了相同的问题。尚无解决方案,但在 3 个不同平台上的行为相同。

【讨论】:

    【解决方案2】:

    最新版本中存在错误,对于遇到相同问题的人,请更新到已修复此错误的 spacebrew.js 的最新版本。此处有关错误跟踪的更多信息: https://github.com/Spacebrew/spacebrew.js/pull/10#issuecomment-38280949

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 2014-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多