Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.
/ angular-ws Public archive

WebSocket service for AngularJS.

License

Notifications You must be signed in to change notification settings

gregberge/angular-ws

Repository files navigation

angular-ws

This plugin is no longer actively maintained, you can still use it but issues will not be resolved. If you want the npm name, you can contact me by email.

Build Status Dependency Status devDependency Status

WebSocket service for Angular.js.

Install

bower install angular-ws

Usage

angular.module('app', ['ws'])
.config(function (wsProvider) {
  wsProvider.setUrl('ws://echo.websocket.org');
})
.controller('WebSocketCtrl', function ($scope, ws, $log) {
  ws.on('message', function (event) {
    $log.info('New message', event.data);
  });

  ws.send('custom message');
});

Provider

wsProvider.setUrl(url)

Set the url of the WebSocket.

wsProvider.setUrl('ws://echo.websocket.org');

wsProvider.setProtocols(protocols)

Set the protocols used by the WebSocket.

wsProvider.setProtocols(['protocol']);

wsProvider.setTransport(transport)

Set a custom transport (example: ReconnectingWebSocket).

wsProvider.setTransport(ReconnectingWebSocket);

Service

ws.connect([config])

Connect the WebSocket, you can provide a custom config.

Note that if you use ws.on or ws.send the connection is automatic.

ws.connect({
  url: 'ws://echo.websocket.org',
  protocols: ['protocol']
})
.then(function () {
  $log.debug('WebSocket is connected.');
}, function () {
  $log.debug('An error occurs during WebSocket connection.');
});

ws.baseSocket

The base socket object.

ws.baseSocket.onmessage = function (event) {
  // event.data ...
}

ws.getReadyState()

Get the ready state of the WebSocket.

ws.getReadyState() // WebSocket.CLOSED, WebSocket.OPEN...

ws.on(event, listener)

Listen an event on the WebSocket, the function is already wrapped in $rootScope.$apply().

ws.on('message', function (event) {
  $log.info('New message', event.data);
});

ws.close()

Close the connection of the WebSocket.

ws.close();

Testing

To be able to test WebSocket in the good way, the module angular-ws-mock will provide you a transparent mock.

License

MIT