react-nativeã§Webãœã±ããæ¥ç¶ã確ç«ããããšãããšåé¡ãçºçããŸãã ãã®ãã©ãããã©ãŒã ããµããŒããããŠãããã©ããã¯ããããŸãããããã®ãšã©ãŒã¯éåžžã®node.jsã¢ããªã§åçŸã§ããŸãã äžæè°ãªããšã«ãreact-nativeã®çµã¿èŸŒã¿ãããã¬ãŒãç¡å¹ã«ãªã£ãŠããå Žåã«ã®ã¿åé¡ãçºçããŸãã react-native v0.43.1
ãšsocket.io-client v1.7.3
IOS10.2ã§ããããã¹ãããŠããŸãã ç§ã®ãµãŒããŒã¯ãHTTPããŒã1337ã§ãã¹ããããŠããsocket.io v1.7.2
ããŠããŸãã
åå¿ãã€ãã£ãã§socket.io-client
ãå®è£
ãããããã¬ãŒãæå¹ã«ããã«æ¥ç¶XHR: POLLING ERROR
ãŸãã ãã©ã³ã¹ããŒããªãã·ã§ã³ã§ãwebsocketããæå®ãããšããšã©ãŒã¯WEBSOCKET ERROR
ãŸãã ãããç§ãåŸããã¹ãŠã§ãã
ãµãŒããŒãžã®éåžžã®Webãœã±ããæ¥ç¶ã ãããã¬ãŒãæå¹ã«ããŠåäœããŸãã
ããã«é¢é£ããŠç§ãèŠã€ããä»ã®å¯äžã®åé¡ã¯ïŒ1056ã§ããããããã®åé¡ãã©ãã»ã©å¥åŠã«é¢é£ããŠãããã«é©ããŠããŸãã éåžžã®node.jsã¢ããªã§ã·ããªãªãåè©Šè¡ããŸããããåæ§ã®çµæãçºçããŸãããããšã©ãŒã¯ä»¥äžã«ç€ºãããã«è©³çŽ°ã«ç€ºãããŠããŸãã
ãã©ã³ã¹ããŒããªãã·ã§ã³ãæå®ãããŠããªãå ŽåïŒ
{ Error: xhr poll error
at XHR.Transport.onError (/path/to/root/node_modules/engine.io-client/lib/transport.js:64:13)
at Request.<anonymous> (/path/to/root/node_modules/engine.io-client/lib/transports/polling-xhr.js:129:10)
at Request.Emitter.emit (/path/to/root/node_modules/component-emitter/index.js:133:20)
at Request.onError (/path/to/root/node_modules/engine.io-client/lib/transports/polling-xhr.js:307:8)
at Timeout._onTimeout (/path/to/root/node_modules/engine.io-client/lib/transports/polling-xhr.js:254:18)
at ontimeout (timers.js:365:14)
at tryOnTimeout (timers.js:237:5)
at Timer.listOnTimeout (timers.js:207:5) type: 'TransportError', description: 503 }
transports: ['websocket']
ïŒ
{ Error: websocket error
at WS.Transport.onError (/path/to/root/node_modules/engine.io-client/lib/transport.js:64:13)
at WebSocket.ws.onerror (/path/to/root/node_modules/engine.io-client/lib/transports/websocket.js:149:10)
at WebSocket.onError (/path/to/root/node_modules/ws/lib/WebSocket.js:452:14)
at emitOne (events.js:96:13)
at WebSocket.emit (events.js:189:7)
at ClientRequest.onerror (/path/to/root/node_modules/ws/lib/WebSocket.js:711:10)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:189:7)
at TLSSocket.socketErrorListener (_http_client.js:358:9)
at emitOne (events.js:96:13)
type: 'TransportError',
description:
{ Error: socket hang up
at TLSSocket.onHangUp (_tls_wrap.js:1117:19)
at Object.onceWrapper (events.js:291:19)
at emitNone (events.js:91:20)
at TLSSocket.emit (events.js:186:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
code: 'ECONNRESET',
type: 'error',
target:
WebSocket {
domain: null,
_events: [Object],
_eventsCount: 4,
_maxListeners: undefined,
_socket: null,
_ultron: null,
_closeReceived: false,
bytesReceived: 0,
readyState: 0,
supports: [Object],
extensions: {},
_binaryType: 'nodebuffer',
_isServer: false,
url: 'wss://SERVER_IP:1337/socket.io/?EIO=3&transport=websocket',
protocolVersion: 13 } } }
ãŸããsocket.ioã®ãã©ãŠã¶ããŒã¹ã®ã¯ã©ã€ã¢ã³ãã¯ããã®ç¹å®ã®WebãµãŒããŒã«åé¡ãªãæ¥ç¶ã§ããããšã«ã泚æããŠãã ããã
ç§ã¯ããŸããŸãªç°ãªããããã¯ãŒã¯ãISPãããã«ã¯VPNãè©ŠããŸããã ç§ã¯ãã®æç¹ã§ã¯ç¡ç¥ã§ãã
æŽæ°ïŒã€ãã«iPhoneã§socket.io-clientã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã®1ã€ããã¹ãããåŸãXHRããŒãªã³ã°ãšã©ãŒã«ééããªãã£ãã®ã¯å¹žéã§ããã ãã ããéåžžã®ããŒãã¢ããªã§ãã®ãšã©ãŒãçºçããŸãã
çŸåšãããŒãã¢ããªã±ãŒã·ã§ã³ã§ãåãåé¡ãçºçããŠããŸãã ç§ã¯socket.ioã®çµã¿èŸŒã¿ãµãŒããŒã䜿çšããŠããããã©ãŠã¶ãŒã§ã¯æ£åžžã«æ©èœããŠããããã§ãããããŒãã¢ããªã§ã¯socket.io-clientãäžèšãšåã503xhrããŒãªã³ã°ãšã©ãŒãã¹ããŒããŸãã ãµãŒããŒãšã¯ã©ã€ã¢ã³ããåããã·ã³ã§å®è¡ããŠããŸãããã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ããã«ãŒãããã¯ãŸãã¯ããŒã«ã«ãããã¯ãŒã¯ã¢ãã¬ã¹ãžã®æ¥ç¶ãæ©èœããŠããŸããã socket.io
ãšsocket.io-client
ã®äž¡æ¹ã®ããŒãžã§ã³1.7.3
ã䜿çšããŠããŸãã
lããŒãããå®è¡ãããšãããŒãžã§ã³2.0.1
ïŒã¯ã©ã€ã¢ã³ããšãµãŒããŒïŒã§ããã®ãšã©ãŒãçºçããŸãã
1é±éåã«ãªãã¡ã¯ã¿ãªã³ã°ã§åé¡ã解決ããŸããããäœãåé¡ãæ£ç¢ºã«è§£æ±ºããã®ãèŠããŠããŸããã ç³ãèš³ãããŸããããå¿ãã1é±éã§ãããããããæåã®ã³ãããã§ããã
ã¯ã©ã€ã¢ã³ãã§opts.transports
ãwebsocket
ã®ã¿ã«èšå®ããŠã¿ãããšãã§ããŸãã
io.connect(url, { transports: ['websocket'] }); // default is ['polling', 'websocket']
ã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããåã«ããœã±ãããšã¢ã¯ã·ã§ã³ã®ãã€ã³ãã£ã³ã°ããžãã¯ãè€éãããŸããã ãããã£ãŠãã³ãŒãå ã®ãœã±ããããžãã¯ãæ©èœããŠããããšã確èªãããããã°ãç°¡åã«ããŸãã
茞éããŠã¿ãŸãã ä»ã®ãšããã1.7.4ã«ããŠã³ã°ã¬ãŒãããŸãããããã¹ãŠæ©èœããŠããããã§ãã
ã¯ãç§ã¯ããŒãžã§ã³ã2.0.1ãã1.7.4ã«ããŠã³ããŸãããããä¿®æ£ããŸã
ããã§ã 2.0.1
ã¢ããã°ã¬ãŒããçŽããWebSocketãã©ã³ã¹ããŒãã®ã¿ã䜿çšããããã«ã¯ã©ã€ã¢ã³ããèšå®ããŸããã ããã¯ïŒã»ãŒïŒæ©èœããŸãïŒ
io(`localhost:8080`, {
transports: [ 'websocket' ],
upgrade: false
});
ä»ãç§ã®å¯äžã®åé¡ã¯ãWebã¯ãŒã«ãŒã¹ã³ãŒãã®WebSocketãã©ã³ã¹ããŒããå£ããŠããããšã§ãã åé¡ãç¹å®ãã察å¿ããåé¡ãengine.io-client
ã§éãããšæããŸããhttpsïŒ//github.com/socketio/engine.io-client/issues/569
ã¹ããŒããããšã©ãŒã¯ãããŸããïŒ ãããã°ãæå¹ã«ããŠå®è¡ã§ããŸããïŒ ïŒ DEBUG=engine*
ïŒ
react-nativeã«é¢ããŠã¯ã httpsïŒ//github.com/socketio/socket.io-client/issues/1114ã«ãªã³ã¯ãããŠããå¯èœæ§ããã
@darrachequesneããã§ããµãŒããŒåŽã®ã¯ã©ã€ã¢ã³ãã³ã³ããŒãã³ãã§ããã©ã«ãã®ãã©ã³ã¹ããŒãã«æ»ããŸããã ããã§ã®ç§ã®ééã...ããŒãªã³ã°ãã©ã³ã¹ããŒãã¯ééããªãç§ã®ããã«åããŠããŸãã ç§ãæ±ããŠããåé¡ã¯ãããŒã«ã«éçºè
åãã®èªå·±çœ²åSSL蚌ææžã«é¢ãããã®ã§ããã ãããæ©èœãããã«ã¯ãsocket.ioæ§æã«rejectUnauthorized: process.env.NODE_ENV === 'production'
ãè¿œå ããå¿
èŠããããŸããã ãã以å€ã®å Žåã¯503
ãååŸããŠããŸããã
ãã ããWebã¯ãŒã«ãŒã®åé¡ã¯çŸå®çã§ãã socketio / engine.io-clientïŒ569
ãããè©ŠããŠ
require('socket.io-client')('http://localhost', {
rejectUnauthorized: false,
})
ããããšãç§ã¯ãããè©ŠããŠã¿ãŸã
-----å
ã®ã¡ãã»ãŒãž-----
æçš¿è
ïŒZetsin [email protected]
åä¿¡è
ïŒ "socketio / socket.io-client" [email protected]
CcïŒWangzhiqiang [email protected] ãã³ã¡ã³ã[email protected]
件åïŒReïŒ[socketio / socket.io-client]ãããã¬ãŒãååšããå Žåã«XHRããŒãªã³ã°ãšã©ãŒã衚瀺ãããŸãïŒïŒ1097ïŒ
æ¥ä»ïŒ2017幎5æ20æ¥16:22
ãããè©ŠããŠ
requireïŒ 'socket.io-client'ïŒïŒ 'httpïŒ// localhost'ã{
requireUnauthorizedïŒfalseã
}ïŒ
â
ã³ã¡ã³ãããã®ã§ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããããã¹ã¬ããããã¥ãŒãããŠãã ããã
åãåé¡ããããŸãã 次ã«ãã¯ã©ã€ã¢ã³ãã³ãŒãã次ã®ããã«å€æŽããŸã
require('socket.io-client')('wss://myserver:port/ws', { transports: ['websocket'], rejectUnauthorized: false });
ãããä»ãç§ã¯404ãšã©ãŒå¿çãåãåããŸãã ãã°ã«ã¯ããªã¯ãšã¹ãURLã«è¿œå ã®/socket.io/
è¿œå ãããŠããããšã瀺ãããŠããŸãã
{ Error: unexpected server response (404)
at ClientRequest._req.on (/Users/chris/Projects/nationsky/mgmt-server/backend/node_modules/ws/lib/WebSocket.js:650:26)
at emitOne (events.js:115:13)
at ClientRequest.emit (events.js:210:7)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:564:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
at TLSSocket.socketOnData (_http_client.js:453:20)
at emitOne (events.js:115:13)
at TLSSocket.emit (events.js:210:7)
at addChunk (_stream_readable.js:252:12)
at readableAddChunk (_stream_readable.js:239:11)
type: 'error',
target:
WebSocket {
domain: null,
_events: [Object],
_eventsCount: 4,
_maxListeners: undefined,
readyState: 0,
bytesReceived: 0,
extensions: {},
protocol: '',
_binaryType: 'arraybuffer',
_finalize: [Function: bound finalize],
_finalizeCalled: false,
_closeMessage: null,
_closeTimer: null,
_closeCode: null,
_receiver: null,
_sender: null,
_socket: null,
_ultron: null,
protocolVersion: 13,
_isServer: false,
url: 'wss://myserver:port/socket.io/?access_token=HnbtDUEWu1i1HVrAn-DO9YOL6GZxoittWAf8Sz_RR0s&EIO=3&transport=websocket',
_req: [Object] } } }
ç§ã«ãšã£ãŠã¯ããããã¬ãŒãååšããªããŠã衚瀺ãããŸã
ããã«ã¡ã¯ïŒ Node.jsã¢ããªãããµãŒããŒã«æ¥ç¶ããããšãããšãã«åãåé¡ãçºçããŸãããã³ãŒãã¯æ¬¡ã®ãšããã§ãã
const socket = require('socket.io-client')('https://domain.com')
DEBUG=engine* npm run dev
å®è¡ãããã°ã¯ã次ã®ãããªãã®
engine.io-client:socket creating transport "polling" +2s
engine.io-client:polling polling +1ms
engine.io-client:polling-xhr xhr poll +0ms
engine.io-client:polling-xhr xhr open GET: https://domain.com/socket.io/?EIO=3&transport=polling&t=LzBM71r&b64=1 +0ms
engine.io-client:polling-xhr xhr data null +0ms
engine.io-client:socket setting transport polling +1ms
engine.io-client:socket socket error {"type":"TransportError","description":503} +7ms
engine.io-client:socket socket close with reason: "transport error" +0ms
engine.io-client:polling transport not open - deferring close +0ms
ãã©ãŠã¶ããhttps://domain.com/socket.io/socket.io.js
ã«æ¥ç¶ããããšãããšãããã¯æ©èœãã io('https://domain.com')
ã䜿çšããã®ã§ãã³ã¡ã³ãã®æ瀺ã«åŸããã³ãŒãã次ã®ããã«å€æŽããŸããã
const socket = require('socket.io-client')('https://domain.com', { rejectUnauthorized: false })
ãããŠããã¯æ©èœããŸããããããã¯å¥åŠã§ããç§ã¯Let's Encryptããã®æå¹ãªèšŒææžãæã£ãŠããŸããããããšãæ£åžžã§ããïŒ ãšã«ãã.. websocket
以å€ã®æ¥ç¶ãåé¿ããããã«ãïŒã³ã¡ã³ããããïŒ transports
ãªãã·ã§ã³ãè¿œå ããæåŸã«ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸããã
const socket = require('socket.io-client')('https://domain.com', {
transports: ['websocket'],
rejectUnauthorized: false
})
@ibrahimduranãš@SupremeTechnopriestã«æè¬ã
ã¿ãŒã¶ã³ã®ããã«æžããããè©«ã³ããŸãïŒsweat_smileïŒè±èªã®ããã«åãçµãã§ããŸã
ç§ã¯ãã®åé¡ãæ±ããŠããŠãããã«2æéè²»ãããŸãããããªãã·ã§ã³ãæ£ããæå®ããŠããã ãã§ããããšãããããŸããã ããããæå®ããæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
let socketClient = socketIOClient.connect(`http://localhost:3001`,{ // [1] Important as fuck
reconnectionDelay: 1000,
reconnection:true,
reconnectionAttempts: 10,
transports: ['websocket'],
agent: false, // [2] Please don't set this to true
upgrade: false,
rejectUnauthorized: false
});
[1] httpãšhttpsã®ã©ã¡ãã䜿çšããããæå®ããªãå Žåãããã©ã«ãã§httpsã«ãªããŸãã ãããšããšããŠãURLã®åŸã«ããŒãæš©ãæå®ããŠãããªãå Žåã¯ããURLã comã®ïŒããŒãããããã©ã«ãã80ãŸãã¯443ã«ãããã³ã«ã«å¿ããŠã ãªãã·ã§ã³ãªããžã§ã¯ãã®ãªãã·ã§ã³ãšããŠããŒããæå®ãããŠããstackoverflowã®åçãèŠãŠããŸããã ã³ãŒãã調ã¹ãŸãããããã®ãããªãªãã·ã§ã³ã¯ãããŸããã URLã«ããŒããå«ããå¿ èŠããããŸãã
[2]ãŸãããšãŒãžã§ã³ããtrueã«èšå®ããŸããããwsæ¥ç¶ã®ç¢ºç«ã«å€±æãããšã©ãŒã¯çºçããŸããã§ãããåã«ã¿ã€ã ã¢ãŠãããŸããã ãšãŒãžã§ã³ãããŸã£ããæå®ããªãã§ãã ããã ããã©ã«ãã¯falseã§ãã
@ teja42ãã®åé¡ã2æ¥éä¿®æ£ããŠã¿ãŸããã ããã¯webpackã®ãã³ãã«ã®åé¡ã ãšæããŸãããããœãªã¥ãŒã·ã§ã³ã¯ããŸãæ©èœããŸããã ããããšãïŒ
ããã«ã¡ã¯ ïŒ
@SupremeTechnopriestãèšã£ãã®ãšåãåé¡ãçºçãã2.0.1ãã1.7.4ãžã®ããŠã³ã°ã¬ãŒããä¿®æ£ããããã¹ãŠ
ããããšã ïŒ
ããã«ã¡ã¯ãç§ã¯ãŸã Android8.1ã§è©ŠããŠã¿ããšãã®åé¡ããããŸã:(
æ¬äŒŒã³ãŒãïŒ
`` `
this.socket = io.connectïŒ 'httpsïŒ// xxxxxxxxxxxxxx'ã{
ãã¹ïŒ '/ socketchannel'ã
reconnectionDelayïŒ1000ã
åæ¥ç¶ïŒtrueã
reconnectionAttemptsïŒ10
ãã©ã³ã¹ããŒãïŒ['websocket']ã
ãšãŒãžã§ã³ãïŒfalseã
ã¢ããã°ã¬ãŒãïŒfalseã
requireUnauthorizedïŒfalse
}ïŒ;
this.socket.onïŒ 'connect'ãïŒïŒ=> {
console.logïŒ 'ãœã±ããæ¥ç¶ïŒ'ïŒ
}ïŒ
this.socket.onïŒ 'connect_error'ãïŒerrïŒ=> {
console.logïŒ 'ãœã±ããæ¥ç¶ãšã©ãŒ->' + errïŒ;
}ïŒ
`` `
ã¢ããªã±ãŒã·ã§ã³ã¯ãconnection_errorãã€ãã³ãã«å
¥ããããšã©ãŒïŒWebSocketãšã©ãŒãããã°ã«èšé²ããŸã
"react-native"ïŒ "0.57.4"ã
"socket.io-client"ïŒ "1.7.4"
å©èšããããŸããïŒ
ã¢ããªã±ãŒã·ã§ã³ã¯ãconnection_errorãã€ãã³ãã«å ¥ããããšã©ãŒïŒWebSocketãšã©ãŒãããã°ã«èšé²ããŸã
åãåé¡ã«çŽé¢ããŠãã
"react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
"engine.io-client": "~3.3.2",
"socket.io-client": "2.1.1",
ç§ã¯ããã«é¢ããæŽæ°ã§åãåé¡ã«çŽé¢ããŠããŸããïŒ
ãã®ããã®+1
ãœã±ãããµãŒããŒã®origins
ãåå ã§ããã®åé¡ãçºçããŸããã
ã§ã¯ãåç¹ãè¿œå ããæ¹æ³ã¯ïŒ
ããã«ã¡ã¯ãã¿ããªã ãã®ãããããŒããšã¯ã¹ãã¬ã¹ãµãŒããŒã«PM2ã¯ã©ã¹ã¿ãŒã䜿çšããredisã¢ããã¿ãŒã䜿çšããŠããŸãã
const redis = require('socket.io-redis')
io.adapter(redis(config.redis))
ãã©ãŠã¶ã¯ã©ã€ã¢ã³ãã®å Žåãããã¯åé¡ãªãããã«èŠããŸãããsocket.io-clientã®å Žåã¯æ¬¡ã®ããã«ãªããŸãã
{ Error: xhr post error
at XHR.Transport.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transport.js:67:13)
at Request.<anonymous> (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:111:10)
at Request.Emitter.emit (/home/user/Desktop/nodeclienttest/node_modules/component-emitter/index.js:133:20)
at Request.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:311:8)
at Timeout._onTimeout (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:258:18)
at listOnTimeout (timers.js:327:15)
at processTimers (timers.js:271:5) type: 'TransportError', description: 400 }
{ Error: xhr poll error
at XHR.Transport.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transport.js:67:13)
at Request.<anonymous> (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:130:10)
at Request.Emitter.emit (/home/user/Desktop/nodeclienttest/node_modules/component-emitter/index.js:133:20)
at Request.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:311:8)
at Timeout._onTimeout (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:258:18)
at listOnTimeout (timers.js:327:15)
at processTimers (timers.js:271:5) type: 'TransportError', description: 400 }
WebSocketãã©ã³ã¹ããŒãã䜿çšããããã«ã¯ã©ã€ã¢ã³ãã³ãŒããå€æŽãããšããã¹ãŠæ£åžžã«æ©èœããŸãã
var socket = require("socket.io-client")("http://localhost:8080", { transports: ['websocket'] });
åé¡ã¯ããã®ã³ãŒãããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã³ãŒãã«å€æŽããå¿ èŠããªãããšã§ãã
xhrããŒãªã³ã°ãã©ã³ã¹ããŒãã倱æããå Žåã¯ãsocket.io-clientãå€æŽããŠWebSocketãã©ã³ã¹ããŒããè©Šè¡ããããšããå§ãããŸãã ã©ãæããŸããïŒ
ãã®ããã«ãgithubã®æåŸã®ããŒãžã§ã³ãè©ŠããŠãRNandroidã®åé¡ã解決ããŸããã
npm i socketio/engine.io-client#3.3.2 -S
也æ¯
ãã®è§£æ±ºçã¯å°ãå¥åŠã«èããããããããŸãããããã®ãšã©ãŒãã°ãŒã°ã«ã§æ€çŽ¢ããŠããã«å°éããŸããã
ç§ã®å ŽåããµãŒããŒãå®è¡ãããŠããªãã£ãããã«ãããååŸããŠããŸããïŒå®è¡ãããŠãããšæããŸããïŒã ãããä»ã®èª°ããå©ããããšãé¡ã£ãŠããŸã:)
ãããè©ŠããŠ
require('socket.io-client')('http://localhost', { rejectUnauthorized: false, })
ãããã§ãããŒãã¢ããªã±ãŒã·ã§ã³ãããµãŒããŒã«æ¥ç¶ããéã«åé¡ãçºçããŸããããã®ãœãªã¥ãŒã·ã§ã³ã¯åé¡ãªãæ©èœããŸããã
ãããè©ŠããŠ
require('socket.io-client')('http://localhost', { rejectUnauthorized: false, })
ãããã§ãããŒãã¢ããªã±ãŒã·ã§ã³ãããµãŒããŒã«æ¥ç¶ããéã«åé¡ãçºçããŸããããã®ãœãªã¥ãŒã·ã§ã³ã¯åé¡ãªãæ©èœããŸããã
ããã«ã¡ã¯ãsocket.ioãšsocket.ioã®ã©ã®ããŒãžã§ã³ã䜿çšããŠããã®ãçåã«æããŸãã-client
ãããè©ŠããŠ
require('socket.io-client')('http://localhost', { rejectUnauthorized: false, })
ãããã§ãããŒãã¢ããªã±ãŒã·ã§ã³ãããµãŒããŒã«æ¥ç¶ããéã«åé¡ãçºçããŸããããã®ãœãªã¥ãŒã·ã§ã³ã¯åé¡ãªãæ©èœããŸããã
ããã«ã¡ã¯ãsocket.ioãšsocket.ioã®ã©ã®ããŒãžã§ã³ã䜿çšããŠããã®ãçåã«æããŸãã-client
ããŒãžã§ã³2.3.0ã§socket.ioãšsocket.io-clientã®äž¡æ¹ã䜿çšããŠããŸãã
ããã«ã¡ã¯ãç§ã¯ãŸã Android8.1ã§è©ŠããŠã¿ããšãã®åé¡ããããŸã:(
æ¬äŒŒã³ãŒãïŒ
this.socket = io.connect('https://xxxxxxxxxxxxxx', { path: '/socketchannel', reconnectionDelay: 1000, reconnection:true, reconnectionAttempts: 10, transports: ['websocket'], agent: false, upgrade: false, rejectUnauthorized: false }); this.socket.on('connect', () => { console.log('socket connected!') }) this.socket.on('connect_error', (err) => { console.log('socket connected error --> ' + err); })
ã¢ããªã±ãŒã·ã§ã³ã¯ãconnection_errorãã€ãã³ãã«å ¥ããããšã©ãŒïŒWebSocketãšã©ãŒãããã°ã«èšé²ããŸã
"react-native"ïŒ "0.57.4"ã
"socket.io-client"ïŒ "1.7.4"å©èšããããŸããïŒ
åãåé¡ã§ããã解決ããŸããïŒ
ãã¡ã€ã³åã䜿çšããŠåé¡ã解決ããŸãã
æãåèã«ãªãã³ã¡ã³ã
1é±éåã«ãªãã¡ã¯ã¿ãªã³ã°ã§åé¡ã解決ããŸããããäœãåé¡ãæ£ç¢ºã«è§£æ±ºããã®ãèŠããŠããŸããã ç³ãèš³ãããŸããããå¿ãã1é±éã§ãããããããæåã®ã³ãããã§ããã
ã¯ã©ã€ã¢ã³ãã§
opts.transports
ãwebsocket
ã®ã¿ã«èšå®ããŠã¿ãããšãã§ããŸããã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããåã«ããœã±ãããšã¢ã¯ã·ã§ã³ã®ãã€ã³ãã£ã³ã°ããžãã¯ãè€éãããŸããã ãããã£ãŠãã³ãŒãå ã®ãœã±ããããžãã¯ãæ©èœããŠããããšã確èªãããããã°ãç°¡åã«ããŸãã