Error during WebSocket handshake: Incorrect 'Sec-WebSocket-Accept' header value
-
Hi All,
Am using the latest custom dashboards module, receiving:
WebSocket connection to 'ws://our-server-here:8080/rest/v1/websocket/point-value' failed: Error during WebSocket handshake: Incorrect 'Sec-WebSocket-Accept' header value
When attempting to use a point value directive. The error is thrown by EventManager.js line 81:
var socket = this.socket = new WebSocket(protocol + '//' + host + this.url);
To reproduce, am using the following javascript snippet:
var user = User.login({
username: username.value,
password: password.value
});user.$promise.then(function() { console.log('doLogin, user promise resolved'); /* var redirect = 'dashboard.home'; if ($state.loginRedirect) { redirect = $state.loginRedirect; delete $state.loginRedirect; } $rootScope.clearErrors(); $state.go(redirect);*/ // reload the page. setTimeout( function () { console.log('doLogin, attempt refresh'); //location.href=location.href location.reload(true); }, 2000); }, function(error) { console.log('doLogin, error'); console.error(error); /* if (error.status === 406) { $scope.errors.invalidLogin = true; } else { $scope.errors.otherError = error.statusText || 'Connection refused'; }*/ });
After a few minutes the dashboard appears to retry the websocket connect, and everything is ok. If I reload immediately the error is not thrown. The problem I have is detecting the initial websocket failure and retrying. Has anyone seen the same? How is Sec-WebSocket-Accept being set by the client? Am I missing a step to initialise the client after the resolve of User.login().$promise?
Cheers,
Tim