Skip to content

nandrews0424/core-websocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#core-websocket

A polymer websocket adapter that provides a declarative way to drop reconnecting websockets onto a page. If multiple URLs are provided, the socket will automatically connect to the fastest and roll through them in the event that a connection is lost.

##Events ####data Emits data as it's retreived, with the detail containing the data received and the source (assuming one was provided in the data request)

####serverChange If servers are changed for any reason this event is fired

##Attributes ####json Specifies whether the adapter will automatically attempt to json serialize/deserialize messages. Defaults to true. ####urls As urls change, the socket reinitializes with the new target servers. In process messages could be lost during the switch to a new set of servers.

##Methods ####send Sends the provided message via the websocket. Optional callback parameter can be provided will be called with the response, or you can listen for the data event. The send call returns a queryId or messageId that will be included in the response assuming the responding server includes it. The callback will only function if this is the case.

####handleData As request data is returned, we bubble a data event but also if possible associate it with the proper callback and fire that as well.

##Event Handlers

This socket is powerful. So powerful that it will try forever to reconnect to all the specified servers until you call close. It will not give up. It will not relent.

OK -- so this socket, on send, will roll through all connected sockets, and the first one that does a successful transport wins. All connected sockets are possible sources for incoming messages.

Oh -- and this is a client side WebSocket, and is set up to work with Browserify. Client side matters since it initiates the WebSocket connection, so is the only side in a place to reconnect.

If you explicitly call close(), then this socket will really close, otherwise it will work to automatically reconnect onerror and onclose from the underlying WebSocket.

#Events ##onserver(event) This is fired when the active server changes, this will be after a send as that is the only time the socket has activity to 'know' it switched servers.

Event relay. Maybe I should call it baton not evt. Anyhow, the ReconnectingWebSocket handles the underlying WebSocket so we don't need to hookup each time we reopen.

Send, hunting through every socket until one goes.

This is a very simple form of stick preference for the last socket that worked.

Close all the sockets.

Empty shims for the event handlers. These are just here for discovery via the debugger.

Publish this object for browserify.

This has the exact same API as WebSocket. So you get going with:

ReconnectingWebSocket = require(reconnecting-websocket)
ws = new ReconnectingWebSocket('ws://...');

#Events ##onreconnect(event) This callback is fired when the socket reconnects. This is separated from the onconnect(event) callback so that you can have different behavior on the first time connection from subsequent connections. ##onsend(event) Fired after a message has gone out the socket. ##ws A reference to the contained WebSocket in case you need to poke under the hood.

This may work on the client or the server. Because we love you.

The all powerful connect function, sets up events and error handling.

Empty shims for the event handlers. These are just here for discovery via the debugger.

Publish this object for browserify.

About

Websocket polymer component

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors