<link rel="import" href="../../../../../../bower_components/polymer/polymer.html"> <link rel="import" href="../../../../../../bower_components/iron-ajax/iron-ajax.html"> <!-- `<channelstream-connection>` allows you to connect and interact with channelstream server abstracting websocket/long-polling connections from you. In typical use, just slap some `<channelstream-connection>` at the top of your body: <body> <channelstream-connection username="{{user.username}}" connect-url="http://127.0.0.1:8000/demo/connect" disconnect-url="http://127.0.0.1:8000/disconnect" subscribe-url="http://127.0.0.1:8000/demo/subscribe" message-url="http://127.0.0.1:8000/demo/message" long-poll-url="http://127.0.0.1:8000/listen" websocket-url="http://127.0.0.1:8000/ws" channels-url='["channel1", "channel2"]' /> Then you can do `channelstreamElem.connect()` to kick off your connection. This element also handles automatic reconnections. ## Default handlers By default element has a listener attached that will fire `startListening()` handler on `channelstream-connected` event. By default element has a listener attached that will fire `retryConnection()` handler on `channelstream-connect-error` event, this handler will forever try to re-establish connection to the server incrementing intervals between retries up to 1 minute. --> <dom-module id="channelstream-connection"> <template> <iron-ajax id="ajaxConnect" url="" handle-as="json" method="post" content-type="application/json" loading="{{loadingConnect}}" last-response="{{connectLastResponse}}" on-response="_handleConnect" on-error="_handleConnectError" debounce-duration="100"></iron-ajax> <iron-ajax id="ajaxDisconnect" url="" handle-as="json" method="post" content-type="application/json" loading="{{loadingDisconnect}}" last-response="{{_disconnectLastResponse}}" on-response="_handleDisconnect" debounce-duration="100"></iron-ajax> <iron-ajax id="ajaxSubscribe" url="" handle-as="json" method="post" content-type="application/json" loading="{{loadingSubscribe}}" last-response="{{subscribeLastResponse}}" on-response="_handleSubscribe" debounce-duration="100"></iron-ajax> <iron-ajax id="ajaxUnsubscribe" url="" handle-as="json" method="post" content-type="application/json" loading="{{loadingUnsubscribe}}" last-response="{{unsubscribeLastResponse}}" on-response="_handleUnsubscribe" debounce-duration="100"></iron-ajax> <iron-ajax id="ajaxMessage" url="" handle-as="json" method="post" content-type="application/json" loading="{{loadingMessage}}" last-response="{{messageLastResponse}}" on-response="_handleMessage" on-error="_handleMessageError" debounce-duration="100"></iron-ajax> <iron-ajax id="ajaxListen" url="" handle-as="text" loading="{{loadingListen}}" last-response="{{listenLastResponse}}" on-request="_handleListenOpen" on-error="_handleListenError" on-response="_handleListenMessageEvent" debounce-duration="100"></iron-ajax> </template> <script src="channelstream-connection.js"></script> </dom-module>