Observação : para perguntas de suporte, use um destes canais: stackoverflow ou slack
Para relatórios de bugs e solicitações de recursos para o cliente Swift , abra um problema aqui .
Para relatórios de bugs e solicitações de recursos para o cliente Java , abra um problema aqui .
O que realmente está acontecendo?
Após a atualização de 2.3.0 para 3.0.1, obtendo um erro no reagente nativo
-Crie um novo projeto reagente nativo.
-Instalar socket.io-client.
-Use-o em seu código.
Observação : a melhor maneira (e com isso queremos dizer a única maneira ) de obter uma resposta rápida é fornecer um caso de teste com falha, bifurcando o seguinte violino .
O que é esperado?
Para funcionar corretamente.
SO: Android
navegador:
Eu tenho o mesmo problema com meu projeto nativo Rea, está funcionando bem no iOS, mas recebo este erro com o Android.
versões:
"reagir nativo": "0,63,3",
"socket.io-client": "^ 3.0.1",
O erro vem durante a conexão:
io.connect ('http://192.168.1.81:3750');
Ainda tentando entender.
eu também enfrentando o mesmo problema depois de atualizar minhas bibliotecas, todo o aplicativo funciona bem, mas o soquete apresenta este mesmo erro:
versões:
"reagir nativo": "0,63,3",
"socket.io-client": "^ 3.0.1",
Sou novo no Reag-Native e também estou enfrentando esse problema. Existe uma solução alternativa conhecida?
socket. [email protected]
Fiz o downgrade para a versão 2.3.1, que corrige o problema.
fio adicionar soquete. [email protected]
Olá a todos. Eu realmente poderia reproduzir.
Existe uma maneira de encontrar a linha que está provocando este erro?
@darrachequesne li seu commit e adicionei
{withCredentials: false}
em configurações de soquete e funciona, então o código seria assim:
io(SOCKET_URL, {
withCredentials: false,
})
@ Mohamed-Rajab-2112 você está certo, definir explicitamente withCredentials
deve funcionar: +1:
Deve ser corrigido por [email protected]
(que está incluído em [email protected]
). Você poderia confirmar?
Atualizei o exemplo React Native com Socket.IO v3 aqui: https://github.com/socketio/socket.io/tree/master/examples/react-native
Estou tendo o mesmo problema, mas apenas para meu projeto RN em Typescript. Meu outro projeto RN escrito em JS não tem esse problema. E { withCredentials: false }
não é uma opção em SocketClient.Socket
.
@ Rc85
Estou tendo o mesmo problema, mas apenas para meu projeto RN em Typescript. Meu outro projeto RN escrito em JS não tem esse problema. E
{ withCredentials: false }
não é uma opção emSocketClient.Socket
.
Sim, você está certo, withCredentials
não faz parte da interface de configuração, no entanto, acho que você deve resolver isso como um problema de texto digitado, mas tente ignorar o erro ts apenas para fins de teste se esta solução funcionaria com você ou não.
para o texto digitado, você pode tentar estender a configuração do soquete e adicionar withCredentials
a ele, apenas para fazer o texto digitado não reclamar.
Adicionar withCredentials
interrompeu o erro, mas não consigo conectar ao meu servidor. No meu servidor, ele mostra a conexão chegando e o log do console é enviado com spam com a reconexão
io.on('connection', (socket) => {
console.log('Connecting');
}
mas no lado do cliente, conectado é falso.
{"_callbacks": {"$connecting": [[Function onConnecting]]}, "acks": {}, "connected": false, "disconnected": true, "flags": {}, "ids": 0, "io": {"_autoConnect": true, "_callbacks": {"$close": [Array], "$open": [Array], "$packet": [Array]}, "_randomizationFactor": 0.5, "_readyState": "opening", "_reconnection": true, "_reconnectionAttempts": Infinity, "_reconnectionDelay": 1000, "_reconnectionDelayMax": 5000, "_timeout": 20000, "backoff": {"attempts": 0, "factor": 2, "jitter": 0.5, "max": 5000, "ms": 1000}, "connecting": [[Circular]], "decoder": {}, "encoder": {}, "engine": {"_callbacks": [Object], "hostname": "10.0.0.100", "id": null, "opts": [Object], "pingInterval": null, "pingTimeout": null, "pingTimeoutTimer": null, "port": "80", "prevBufferLen": 0, "readyState": "opening", "secure": false, "transport": [XHR], "transports": [Array], "upgrades": null, "writeBuffer": [Array]}, "nsps": {"/": [Circular]}, "opts": {"hostname": "10.0.0.100", "path": "/socket.io", "port": "80", "secure": false, "withCredentials": false}, "skipReconnect": false, "subs": [[Object], [Object], [Object]], "uri": "http://10.0.0.100"}, "nsp": "/", "receiveBuffer": [], "sendBuffer": [], "subs": [{"destroy": [Function destroy]}, {"destroy": [Function destroy]}, {"destroy": [Function destroy]}]}
Tentei fazer o downgrade para 2.3.1, mas não consigo iniciar o servidor metro do meu projeto RN porque o módulo ../util
em node_modules\engine.io-client\lib\transports\polling-xhr.js
não pode ser resolvido. Não tive esse problema com meu projeto RN escrito em JS, se isso importa.
Abri um problema no repositório engine.io-client.
@darrachequesne então para testá-lo, devo npm uninstall socket.io-client
e executar npm install socket.io-client
para obter a atualização mais recente?
Adicionar
withCredentials
interrompeu o erro, mas não consigo conectar ao meu servidor. No meu servidor, ele mostra a conexão chegando e o log do console é enviado com spam com a reconexãoio.on('connection', (socket) => { console.log('Connecting'); }
mas no lado do cliente, conectado é falso.
{"_callbacks": {"$connecting": [[Function onConnecting]]}, "acks": {}, "connected": false, "disconnected": true, "flags": {}, "ids": 0, "io": {"_autoConnect": true, "_callbacks": {"$close": [Array], "$open": [Array], "$packet": [Array]}, "_randomizationFactor": 0.5, "_readyState": "opening", "_reconnection": true, "_reconnectionAttempts": Infinity, "_reconnectionDelay": 1000, "_reconnectionDelayMax": 5000, "_timeout": 20000, "backoff": {"attempts": 0, "factor": 2, "jitter": 0.5, "max": 5000, "ms": 1000}, "connecting": [[Circular]], "decoder": {}, "encoder": {}, "engine": {"_callbacks": [Object], "hostname": "10.0.0.100", "id": null, "opts": [Object], "pingInterval": null, "pingTimeout": null, "pingTimeoutTimer": null, "port": "80", "prevBufferLen": 0, "readyState": "opening", "secure": false, "transport": [XHR], "transports": [Array], "upgrades": null, "writeBuffer": [Array]}, "nsps": {"/": [Circular]}, "opts": {"hostname": "10.0.0.100", "path": "/socket.io", "port": "80", "secure": false, "withCredentials": false}, "skipReconnect": false, "subs": [[Object], [Object], [Object]], "uri": "http://10.0.0.100"}, "nsp": "/", "receiveBuffer": [], "sendBuffer": [], "subs": [{"destroy": [Function destroy]}, {"destroy": [Function destroy]}, {"destroy": [Function destroy]}]}
Tentei fazer o downgrade para 2.3.1, mas não consigo iniciar o servidor metro do meu projeto RN porque o módulo
../util
emnode_modules\engine.io-client\lib\transports\polling-xhr.js
não pode ser resolvido. Não tive esse problema com meu projeto RN escrito em JS, se isso importa.Abri um problema no repositório engine.io-client.
Ok, vou dar uma olhada mais tarde hoje à noite :)
Correção temporária no momento, pelo menos para mim é o downgrade de socket.io-client para 2.3.1. No entanto, engine.io-client gerou o erro mencionado porque está procurando o módulo ../util
algum lugar, que não existe no engine.io-client versão 3.4.4. Tive que fazer npm install engine.io-client@latest
para resolver o erro.
Agora posso me conectar ao meu servidor. Vou ficar com 2.3.1 por enquanto.
@ Rc85 Pessoal acabou de atualizar o pacote algumas horas atrás, experimente a nova versão, acho que resolveu o problema, boa sorte!
Isso deve ser corrigido por https://github.com/socketio/engine.io-client/commit/ccb99e3718e8ee2c50960430d2bd6c12a3dcb0dc.
Execute npm install socket.io-client@3
para forçar a atualização das dependências (ou npm update --depth 9999 engine.io-client
).
Se você usar o Expo, pode ser necessário limpar o cache com expo start --clear