MCPcopy
hub / github.com/alibaba/anyproxy / start

Method start

proxy.js:154–249  ·  view source on GitHub ↗

* start the proxy server * * @returns ProxyCore * * @memberOf ProxyCore

()

Source from the content-addressed store, hash-verified

152 * @memberOf ProxyCore
153 */
154 start() {
155 const self = this;
156 self.socketIndex = 0;
157 self.socketPool = {};
158
159 if (self.status !== PROXY_STATUS_INIT) {
160 throw new Error('server status is not PROXY_STATUS_INIT, can not run start()');
161 }
162 async.series(
163 [
164 //creat proxy server
165 function (callback) {
166 if (self.proxyType === T_TYPE_HTTPS) {
167 certMgr.getCertificate(self.proxyHostName, (err, keyContent, crtContent) => {
168 if (err) {
169 callback(err);
170 } else {
171 self.httpProxyServer = https.createServer({
172 key: keyContent,
173 cert: crtContent
174 }, self.requestHandler.userRequestHandler);
175 callback(null);
176 }
177 });
178 } else {
179 self.httpProxyServer = http.createServer(self.requestHandler.userRequestHandler);
180 callback(null);
181 }
182 },
183
184 //handle CONNECT request for https over http
185 function (callback) {
186 self.httpProxyServer.on('connect', self.requestHandler.connectReqHandler);
187
188 callback(null);
189 },
190
191 function (callback) {
192 wsServerMgr.getWsServer({
193 server: self.httpProxyServer,
194 connHandler: self.requestHandler.wsHandler
195 });
196 // remember all sockets, so we can destory them when call the method 'close';
197 self.httpProxyServer.on('connection', (socket) => {
198 self.handleExistConnections.call(self, socket);
199 });
200 callback(null);
201 },
202
203 //start proxy server
204 function (callback) {
205 self.httpProxyServer.listen(self.proxyPort);
206 callback(null);
207 },
208 ],
209
210 //final callback
211 (err, result) => {

Callers 8

startMethod · 0.45
core_reload.jsFile · 0.45
normal_use.jsFile · 0.45
simple_use.jsFile · 0.45
KoaServerFunction · 0.45
theme.jsFile · 0.45
gitbook.jsFile · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected