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.
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