Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 协调2个节点的socketIO解决方案_Node.js_Socket.io - Fatal编程技术网

Node.js 协调2个节点的socketIO解决方案

Node.js 协调2个节点的socketIO解决方案,node.js,socket.io,Node.js,Socket.io,我需要修改现有的CylonJS_socketIO解决方案,以适应另一个默认的socketIO实现。如果遇到问题,请提供反馈。我猜这与transports对象有关,因为我在前端使用flashsocket客户端,但我不是节点忍者。我想我不需要快递 这是默认的裸体socketIO实现 var express = require('express'); var app = express(); var server = require('http').createServer(app); var io

我需要修改现有的CylonJS_socketIO解决方案,以适应另一个默认的socketIO实现。如果遇到问题,请提供反馈。我猜这与transports对象有关,因为我在前端使用flashsocket客户端,但我不是节点忍者。我想我不需要快递

这是默认的裸体socketIO实现

var express = require('express');
var app = express();
var server = require('http').createServer(app);

var io = require('socket.io').listen(server,{transports:['flashsocket', 'websocket', 'htmlfile', 'xhr-polling', 'jsonp-polling']});

var port = Number(8080);
server.listen(port);

app.use(express.static(__dirname + '/'));

var temp;
 var _this = this;

io.on('connection', function (socket) {
    console.log('connection '+socket)
        socket.on("data",function(d){console.log('data from flash: ',d);});
        socket.emit("message","wtfwtwftwftwf hello from server");
        socket.on('disconnect', function (socket) {
            console.log("disconnect");
        });

        console.log('_this ='+_this);
        _this.socket=socket;

});
这是赛昂JS socketIO代码,我必须通过合并上述代码进行修改

'use strict';
var Cylon = require('cylon');

Cylon.robot({
    name: 'tesla',
    connections: {
        edison: { adaptor: 'intel-iot' }
    },
    events: ['range_sent', 'turned_on', 'turned_off'],

    commands: function() {
        return {
            range_on: this.rangeOn,
            toggle: this.toggle
        };
    },

    devices: {
        maxbotix: { driver: 'maxbotix', pin: '0' },
        led: { driver: 'led', pin: 13 }
    },

    work: function(my) {
        var range = 0;
        every((0.1).seconds(), function() {
            range = my.maxbotix.range();
            console.log('Maxbotix range: ', range);
            this.rangeOn(range);
        }.bind(this));
    },

    rangeOn: function(data) {
        console.log('rangeOn in Server');
        //this.led.turnOn();
        this.emit('range_sent', { data: data });
    },

    toggle: function() {
        this.led.toggle();
        if (this.led.isOn()) {
            this.emit('turned_on', { data: 'pass some data to the listener' });
        } else {
            this.emit('turned_off', { data: 'pass some data to the listener' });
        }
    }
});

Cylon.api(
    'socketio',
    {
        host: '0.0.0.0',
        port: '3000'
 });

Cylon.start();

有人可能会问,为什么
flashsocket
是您首选的transport?AIR客户端前端,尽管普通的websocket也可以