Javascript 通过Websocket更新聚合物组件?

Javascript 通过Websocket更新聚合物组件?,javascript,sockets,polymer,Javascript,Sockets,Polymer,我想找到一种最简单的方法(最好不依赖于大量额外的库)将聚合物组件与web套接字连接起来,这样我就可以从后端轻松地对其进行更新 现在,我已经研究过如何使用bacon.js实现这一点,因为直接从web套接字设置事件流非常容易。我的想法是过滤这些信息,并将它们发送到各个聚合物组分。但是,如果不使用bacon.js或其他库(即仅使用Polymer本身和普通的javascript Web套接字)就可以轻松完成这项工作,那么这可能是更好的选择。有什么想法、提示或示例代码吗 提前谢谢 /Robert这是一种使

我想找到一种最简单的方法(最好不依赖于大量额外的库)将聚合物组件与web套接字连接起来,这样我就可以从后端轻松地对其进行更新

现在,我已经研究过如何使用bacon.js实现这一点,因为直接从web套接字设置事件流非常容易。我的想法是过滤这些信息,并将它们发送到各个聚合物组分。但是,如果不使用bacon.js或其他库(即仅使用Polymer本身和普通的javascript Web套接字)就可以轻松完成这项工作,那么这可能是更好的选择。有什么想法、提示或示例代码吗

提前谢谢


/Robert

这是一种使用聚合物处理websocket的基本方法

    Polymer({
        is: "ws-element",
        socket: null,
        properties: {
            protocol: {
                type: String
            },
            url: {
                type: String
            }
        },
        ready: function () {
            this.socket = new WebSocket(this.url, this.protocol);
            this.socket.onerror = this.onError.bind(this);
            this.socket.onopen = this.onOpen.bind(this);
            this.socket.onmessage = this.onMessage.bind(this);
        },
        onError: function (error) {
            this.fire('onerror', error);
        },
        onOpen: function (event) {
            this.fire('onopen');
        },
        onMessage: function (event) {
            this.fire('onmessage', event.data);
        },
        send: function (message) {
            this.socket.send(message);
        },
        close: function () {
            this.socket.close();
        }
    })

请看一看,Polymer元素使用当今大多数现代浏览器附带的本机WebSocket客户端。

或搜索“socket”返回两个结果。为什么定义socket:null,在properties:{}对象之外?可能是因为它不是传递给组件的属性。相反,它是一个私有实例变量。不过我不记得了。