How to detect which client is receiving the package?

Aberta
#1,656 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
15/100
Tipo de issue
Documentação
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
javascript, node.js
Domínio
backend, networking

Direção de pesquisa

A issue contém um exemplo de proxy WebSocket, mas não indica nenhum arquivo do repositório, teste ou ponto de entrada a ser alterado. Primeiro, esclareça se é desejada uma atualização da documentação ou uma alteração no código e, em seguida, defina o comportamento esperado de identificação do cliente e uma condição de conclusão testável.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Hello,

I am creating a WebSocket proxy. And I need to know which client is receiving the package. Basically I should store data from incoming traffic to use them in outgoing traffic and each client has different data. I searched and tried different ways but none of them worked. Can anyone suggest a working solution?

var proxyWebsocket, serverWebsocket, clientData = {};
const startWSProxy = (data) => {
	proxyWebsocket = new httpProxy.createProxyServer({
		target: {
			protocol: 'ws',
			host: 'localhost',
			port: localPacketPort
		},
		ws: true,
		xfwd: true,
		toProxy: true
	});

	proxyWebsocket.on('open', function (proxySocket) {

		proxySocket.on('data', (res) => {
			// access the identifier here
			// For example:
			// proxySocket._uuid
			// console.log(clientData[proxySocket._uuid]);
		});
	});

	serverWebsocket = http.createServer();
	serverWebsocket.on('upgrade', function (req, socket, head) {
   proxyWebsocket.ws(req, socket, head);
		// Set an identifier here
		// For example:
		// socket._uuid = uuid_generate();
		socket.on('data', (res) => {
			// clientData[socket._uuid][] = res
		});
	});

	serverWebsocket.listen(remotePacketPort);
};
Linguagem predominante
JavaScript
Estrelas
14.1k
Forks
2k
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de http-party/node-http-proxy

Todas as issues de http-party/node-http-proxy

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.