MCPcopy
hub / github.com/YMFE/yapi / componentDidMount

Function componentDidMount

client/containers/Project/Interface/InterfaceList/Edit.js:83–142  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

81 }
82
83 componentDidMount() {
84 let domain = location.hostname + (location.port !== '' ? ':' + location.port : '');
85 let s,
86 initData = false;
87 //因后端 node 仅支持 ws, 暂不支持 wss
88 let wsProtocol = location.protocol === 'https:' ? 'wss' : 'ws';
89
90 setTimeout(() => {
91 if (initData === false) {
92 this.setState({
93 curdata: this.props.curdata,
94 status: 1
95 });
96 initData = true;
97 }
98 }, 3000);
99
100 try {
101 s = new WebSocket(
102 wsProtocol +
103 '://' +
104 domain +
105 '/api/interface/solve_conflict?id=' +
106 this.props.match.params.actionId
107 );
108 s.onopen = () => {
109 this.WebSocket = s;
110 };
111
112 s.onmessage = e => {
113 initData = true;
114 let result = JSON.parse(e.data);
115 if (result.errno === 0) {
116 this.setState({
117 curdata: result.data,
118 status: 1
119 });
120 } else {
121 this.setState({
122 curdata: result.data,
123 status: 2
124 });
125 }
126 };
127
128 s.onerror = () => {
129 this.setState({
130 curdata: this.props.curdata,
131 status: 1
132 });
133 console.warn('websocket 连接失败,将导致多人编辑同一个接口冲突。');
134 };
135 } catch (e) {
136 this.setState({
137 curdata: this.props.curdata,
138 status: 1
139 });
140 console.error('websocket 连接失败,将导致多人编辑同一个接口冲突。');

Callers 1

View.jsFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected