Merge pull request #2538 from mattermost/websocket-fix

Fix websocket trying to reconnect after a logout
Этот коммит содержится в:
Christopher Speller
2016-03-28 07:54:57 -04:00
родитель 8362d3ac0b 6516e9bf68
Коммит 1db912df8d
2 изменённых файлов: 13 добавлений и 7 удалений

Просмотреть файл

@@ -22,6 +22,7 @@ const WEBSOCKET_RETRY_TIME = 3000;
var conn = null; var conn = null;
var connectFailCount = 0; var connectFailCount = 0;
var pastFirstInit = false; var pastFirstInit = false;
var manuallyClosed = false;
export function initialize() { export function initialize() {
if (window.WebSocket && !conn) { if (window.WebSocket && !conn) {
@@ -36,6 +37,8 @@ export function initialize() {
console.log('websocket connecting to ' + connUrl); //eslint-disable-line no-console console.log('websocket connecting to ' + connUrl); //eslint-disable-line no-console
} }
manuallyClosed = false;
conn = new WebSocket(connUrl); conn = new WebSocket(connUrl);
conn.onopen = () => { conn.onopen = () => {
@@ -70,12 +73,14 @@ export function initialize() {
ErrorStore.setConnectionErrorCount(connectFailCount); ErrorStore.setConnectionErrorCount(connectFailCount);
ErrorStore.emitChange(); ErrorStore.emitChange();
setTimeout( if (!manuallyClosed) {
() => { setTimeout(
initialize(); () => {
}, initialize();
WEBSOCKET_RETRY_TIME },
); WEBSOCKET_RETRY_TIME
);
}
}; };
conn.onerror = (evt) => { conn.onerror = (evt) => {
@@ -148,6 +153,7 @@ export function sendMessage(msg) {
} }
export function close() { export function close() {
manuallyClosed = true;
if (conn && conn.readyState === WebSocket.OPEN) { if (conn && conn.readyState === WebSocket.OPEN) {
conn.close(); conn.close();
} }

Просмотреть файл

@@ -55,7 +55,7 @@ export default class SignupTeamComplete extends React.Component {
<div> <div>
<div className='signup-header'> <div className='signup-header'>
<Link to='/'> <Link to='/'>
<span classNameName='fa fa-chevron-left'/> <span className='fa fa-chevron-left'/>
<FormattedMessage id='web.header.back'/> <FormattedMessage id='web.header.back'/>
</Link> </Link>
</div> </div>