當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript net.createConnection函數代碼示例

本文整理匯總了TypeScript中net.createConnection函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript createConnection函數的具體用法?TypeScript createConnection怎麽用?TypeScript createConnection使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了createConnection函數的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: sendCommand

export function sendCommand(tag: string, cmd: string, callback: (code) => void) {
  let cmdMap = {
    'stop': COMMAND.STOP,
    'restart': COMMAND.RESTART,
    'status': COMMAND.STATUS,
    'statusjson': COMMAND.STATUSJSON,
  };
  
  let command = cmdMap[cmd.toLowerCase()];
  
  if (!command) {
    console.error('Command is not supported');
    return callback(1);
  }
  
  let path = util.format('/tmp/lightsword-%s.sock', tag);
  let socket = net.createConnection(path, async () => {
    await socket.writeAsync(new Buffer([command]));
    let msg = await socket.readAsync();
    console.info(msg.toString('utf8'));
    socket.destroy();
    callback(0);
  });
  
  socket.on('error', (err: Error) => { console.info(`${tag} is not running or unix socket error.`); callback(1); });
  socket.setTimeout(5 * 1000);
}
開發者ID:52M,項目名稱:LightSword,代碼行數:27,代碼來源:ipc.ts

示例2: it

	it('should close the socket keeping the socket open but then keeping it no longer open', function (done) {
		this.timeout(0);

		var sock = net.createConnection(9002, 'localhost');

		sock.on('connect', function () {
			var socket = new TCPSocket(sock, socket_opts);

			var closeList1 = function () {
				throw new Error('Should not close socket');
			};

			socket.once('close', closeList1);

			socket.setKeepOpen(true);

			setTimeout(function () {
				socket.removeListener('close', closeList1);

				socket.once('close', function () {
					done();
				});

				socket.setKeepOpen(false);
			}, 3000);
		});
	});
開發者ID:jcostantini,項目名稱:core,代碼行數:27,代碼來源:TCPSocket.ts

示例3: async

  const listen = async () => {
    listening = true

    // We want to keep trying to reconnect here, so the dashboard can be restarted.
    while (true) {
      console.log('Connecting to monitoring server at', host)
      const socket = net.createConnection(+port, host)
      serveToSocket(localStore, socket)

      socket.on('connect', () => {console.log('connected')})

      await new Promise(resolve => {
        socket.on('error', err => {
          console.warn('Error connecting to monitoring server', err.message)
        })
        socket.on('close', hadError => {
          // console.log('closed', hadError)
          resolve()
        })
      })

      // Wait 3 seconds before trying to connect again.
      await new Promise(resolve => setTimeout(resolve, 3000))
    }
  }
開發者ID:josephg,項目名稱:statecraft,代碼行數:25,代碼來源:monitor.ts

示例4: handleOutbound

function handleOutbound(client: net.Socket, host: string, port: number, desiredIv: Buffer, options: HandshakeOptions) {
  
  let proxy = net.createConnection({ port, host }, async () => {
    let success = new Buffer([0x01, 0x00]);
    let randomLength = Number((Math.random() * 64).toFixed());
    let reply = Buffer.concat([success, new Buffer(randomLength)]);
    
    let cipher = cryptoEx.createCipher(options.cipherAlgorithm, options.password, desiredIv).cipher;
    await client.writeAsync(cipher.update(reply));
    let decipher = cryptoEx.createDecipher(options.cipherAlgorithm, options.password, options.iv);
    
    let speed = options.speed;
    
    let clientStream = speed > 0 ? client.pipe(new SpeedStream(speed)) : client;
    clientStream.pipe(decipher).pipe(proxy);
    
    let proxyStream = speed > 0 ? proxy.pipe(new SpeedStream(speed)) : proxy;
    proxyStream.pipe(cipher).pipe(client);
  });
  
  function dispose() {
    client.dispose();
    proxy.dispose();
  }
  
  proxy.on('error', dispose);
  proxy.on('end', dispose);
  client.on('error', dispose);
  client.on('end', dispose);
  
  proxy.setTimeout(options.timeout * 1000);
  client.setTimeout(options.timeout * 1000);
}
開發者ID:Amonhuz,項目名稱:LightSword,代碼行數:33,代碼來源:tcp.ts

示例5: function

      _this.resolve(endpoint, function (err, resolved) {
        if (!_this.connecting) {
          callback(new Error(CONNECTION_CLOSED_ERROR_MSG))
          return
        }
        if (resolved) {
          debug('resolved: %s:%s', resolved.host, resolved.port)
          _this.stream = createConnection(resolved)
          _this.sentinelIterator.reset(true)
          callback(null, _this.stream)
        } else {
          const endpointAddress = endpoint.host + ':' + endpoint.port
          const errorMsg = err
            ? 'failed to connect to sentinel ' + endpointAddress + ' because ' + err.message
            : 'connected to sentinel ' + endpointAddress + ' successfully, but got an invalid reply: ' + resolved

          debug(errorMsg)

          eventEmitter('sentinelError', new Error(errorMsg))

          if (err) {
            lastError = err
          }
          connectToNext()
        }
      })
開發者ID:zeratul1,項目名稱:ioredis,代碼行數:26,代碼來源:index.ts

示例6: connectServer

 static connectServer(client: net.Socket, dst: { port: number, addr: string }, request: Buffer, timeout: number) {
   
   let proxySocket = net.createConnection(dst.port, dst.addr, async () => {
     let reply = new Buffer(request.length);
     request.copy(reply);
     reply[0] = 0x05;
     reply[1] = 0x00;
     
     await client.writeAsync(reply);
     
     proxySocket.pipe(client);
     client.pipe(proxySocket);
   });
   
   function dispose() {
     proxySocket.dispose();
     client.dispose();
   }
   
   proxySocket.on('end', dispose);
   proxySocket.on('error', dispose);
   client.on('end', dispose);
   client.on('error', dispose);
   
   proxySocket.setTimeout(timeout);
   client.setTimeout(timeout);
 }
開發者ID:52M,項目名稱:LightSword,代碼行數:27,代碼來源:localProxyServer.ts

示例7: connect

	connect(host: string, port: number, query: string, callback: IConnectCallback): void {
		const errorListener = (err: any) => callback(err, undefined);

		const socket = net.createConnection({ host: host, port: port }, () => {
			socket.removeListener('error', errorListener);

			// https://tools.ietf.org/html/rfc6455#section-4
			const buffer = Buffer.alloc(16);
			for (let i = 0; i < 16; i++) {
				buffer[i] = Math.round(Math.random() * 256);
			}
			const nonce = buffer.toString('base64');

			let headers = [
				`GET ws://${host}:${port}/?${query}&skipWebSocketFrames=true HTTP/1.1`,
				`Connection: Upgrade`,
				`Upgrade: websocket`,
				`Sec-WebSocket-Key: ${nonce}`
			];
			socket.write(headers.join('\r\n') + '\r\n\r\n');

			const onData = (data: Buffer) => {
				const strData = data.toString();
				if (strData.indexOf('\r\n\r\n') >= 0) {
					// headers received OK
					socket.off('data', onData);
					callback(undefined, new NodeSocket(socket));
				}
			};
			socket.on('data', onData);
		});
		socket.once('error', errorListener);
	}
開發者ID:PKRoma,項目名稱:vscode,代碼行數:33,代碼來源:nodeWebSocketFactory.ts

示例8: createClientSocket

function createClientSocket(endpointUrl: string): Socket {
    // create a socket based on Url
    const ep = parseEndpointUrl(endpointUrl);
    const port = parseInt( ep.port!, 10);
    const hostname = ep.hostname!;
    let socket: Socket;
    switch (ep.protocol) {
        case "opc.tcp:":

            socket = createConnection({ host: hostname, port });

            // Setting true for noDelay will immediately fire off data each time socket.write() is called.
            socket.setNoDelay(true);

            socket.setTimeout(0);

            socket.on("timeout", () => {
                debugLog("Socket has timed out");
            });

            return socket;
        case "fake:":
            socket = getFakeTransport();
            assert(ep.protocol === "fake:", " Unsupported transport protocol");
            process.nextTick(() => socket.emit("connect"));
            return socket;

        case "websocket:":
        case "http:":
        case "https:FF":
        default:
            throw new Error("this transport protocol is currently not supported :" + ep.protocol);

    }
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:35,代碼來源:client_tcp_transport.ts

示例9: attach

export function attach({
  reader: _reader,
  writer: _writer,
  proc,
  socket,
}: Attach) {
  let writer;
  let reader;

  logger.debug('proc');
  logger.debug(proc);
  if (socket) {
    const client = createConnection(socket);
    writer = client;
    reader = client;
  } else if (_reader && _writer) {
    writer = _writer;
    reader = _reader;
  } else if (proc) {
    writer = proc.stdin;
    reader = proc.stdout;
  }

  if (writer && reader) {
    const neovim = new NeovimClient({ logger });
    neovim.attachSession({
      writer,
      reader,
    });
    return neovim;
  }
  throw new Error('Invalid arguments, could not attach');
}
開發者ID:billyvg,項目名稱:node-client,代碼行數:33,代碼來源:attach.ts

示例10: before

	before(function (done) {
		var sock = net.createConnection(9002, 'localhost');

		sock.on('connect', function () {
			socket = new TCPSocket(sock, socket_opts);
			done();
		});
	});
開發者ID:jcostantini,項目名稱:core,代碼行數:8,代碼來源:TCPSocket.ts


注:本文中的net.createConnection函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。