【发布时间】:2020-09-24 08:14:36
【问题描述】:
在我的应用程序中,当用户登录时,我使用会话 ID 创建 webSocket 连接。注销后套接字将关闭。这工作正常。但是,如果我注销并在终止应用程序之前再次使用相同帐户或不同帐户登录 webSocket 抛出错误received bad response code from server 503 现在如果我在用户登录时终止应用程序,当我启动应用程序时 WebSocket 将完美连接,如果之后如果杀死应用程序,则注销并使用初始渲染打开应用程序,并且用户登录套接字将连接而不会出现任何错误。 MY Socket 代码如下。在这方面的任何帮助将不胜感激。
import React, {Component} from 'react';
import {connect} from 'react-redux';
class SocketController extends React.PureComponent {
state = {
socket: null
}
closeSocket() {
this
.state
.socket
.close();
this.setState({socket: null})
}
componentDidUpdate() {
if (this.props.user && this.props.user.sessionId) {
this.connectSocket();
} else {
this.closeSocket()
}
}
connectSocket() {
let url = 'ws://localhost/socket';
this.setState({
socket: new WebSocket(url, '', {
headers: {
Cookie: this.props.user.sessionId
}
})
}, () => {
this.state.socket.onerror = (e) => {
console.log(e.message);
}
this.state.socket.onclose = () => {}
this.state.socket.onopen = (e) => {}
this.state.socket.onmessage = (event) => {}
});
}
render() {
return null
}
}
const mapStateToProps = ({user}) => ({user});
export default connect(mapStateToProps)(SocketController);
【问题讨论】:
标签: javascript react-native websocket react-redux