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.
bower install angular-ws
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');
});
Set the url of the WebSocket.
wsProvider.setUrl('ws://echo.websocket.org');
Set the protocols used by the WebSocket.
wsProvider.setProtocols(['protocol']);
Set a custom transport (example: ReconnectingWebSocket).
wsProvider.setTransport(ReconnectingWebSocket);
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.');
});
The base socket object.
ws.baseSocket.onmessage = function (event) {
// event.data ...
}
Get the ready state of the WebSocket.
ws.getReadyState() // WebSocket.CLOSED, WebSocket.OPEN...
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);
});
Close the connection of the WebSocket.
ws.close();
To be able to test WebSocket in the good way, the module angular-ws-mock will provide you a transparent mock.
MIT