channelstream-connection.html
106 lines
| 3.7 KiB
| text/html
|
HtmlLexer
/ rhodecode / public / js / src / components / channelstream-connection / channelstream-connection.html
r787 | <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> | ||||