Socket.io-client: React-Nativeμ—μ„œ μ—°κ²°ν•  수 μ—†μŒ(디버그 λͺ¨λ“œμ—μ„œλ§Œ)

에 λ§Œλ“  2019λ…„ 01μ›” 03일  Β·  19μ½”λ©˜νŠΈ  Β·  좜처: socketio/socket.io-client

### μ›ν•˜λŠ” μž‘μ—…:

  • [x] _버그_ 보고
  • [ ] _κΈ°λŠ₯_ μš”μ²­

### ν˜„μž¬ 행동
μ†ŒμΌ“ ioλ₯Ό 톡해 λ‚΄ μ„œλ²„μ— μ—°κ²°ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ‹œκ°„μ΄ μ΄ˆκ³Όλ©λ‹ˆλ‹€.

### μž¬ν˜„ 단계(ν˜„μž¬ λ™μž‘μ΄ 버그인 경우)
λ°˜μ‘ λ„€μ΄ν‹°λΈŒμ—μ„œ:

```js
'socket.io-client'μ—μ„œ io κ°€μ Έμ˜€κΈ°;

const BACKEND = 'λ‚΄ socketio μ„œλ²„ URL'

const sock = io(BACKEND, { 전솑: ['websocket'], forceNew: true });
sock.on('연결됨', () = {
디버거;
})
```

디버그 λ‘œκ·ΈλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

νƒ€μž„μ•„μ›ƒλ§Œ 트리거된 것은 μ—†μŠ΅λ‹ˆλ‹€.

### μ˜ˆμƒλ˜λŠ” λ™μž‘
μ›Ή λΈŒλΌμš°μ €μ—μ„œμ™€ 같은 λ°©μ‹μœΌλ‘œ λ‚΄ socketio μ„œλ²„μ— μ—°κ²°ν•  수 있기λ₯Ό κΈ°λŒ€ν•©λ‹ˆλ‹€.

### μ„€μ •

  • 운영 체제: μ•ˆλ“œλ‘œμ΄λ“œ 8.0
  • λΈŒλΌμš°μ €: λ°˜μ‘ λ„€μ΄ν‹°λΈŒ
  • socket.io 버전: 2.1.1(κ·ΈλŸ¬λ‚˜ λ™μΌν•œ 결과둜 λ‹€λ₯Έ 버전을 μ‹œλ„ν•¨)

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

같은 λ¬Έμ œμ— 직면해 μžˆμŠ΅λ‹ˆλ‹€. 디버그 λͺ¨λ“œκ°€ 켜져 있으면 잘 μž‘λ™ν•˜μ§€λ§Œ 디버그 λͺ¨λ“œκ°€ κΊΌμ Έ μžˆκ±°λ‚˜ apkκ°€ 릴리슀 λͺ¨λ“œλ‘œ λΉŒλ“œλ˜λ©΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Versions:
"react": "16.8.2",
"react-native": "0.58.4",
"socket.io-client": "^2.2.0"

λͺ¨λ“  19 λŒ“κΈ€

μ£„μ†‘ν•©λ‹ˆλ‹€ https://github.com/socketio/socket.io-client/issues/1245 볡제

이 문제λ₯Ό λ‹€μ‹œ μ—΄κ² μŠ΅λ‹ˆλ‹€. 이것은 μ•½κ°„ λ‹€λ¦…λ‹ˆλ‹€.

μƒˆλ‘œμš΄ react-native μ„€μΉ˜ 0.57.8에 socket ioλ₯Ό μ„€μΉ˜ν•˜λ €κ³  μ‹œλ„ν–ˆλŠ”λ° 이 λ¬Έμ œκ°€ λ‹€μ‹œ λ°œμƒν•©λ‹ˆλ‹€.

같은 λ¬Έμ œμ— μ§λ©΄ν–ˆμŠ΅λ‹ˆλ‹€. RN 버전 0.57.3μ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 둜컬 μ„œλ²„μ— μ—°κ²°ν•  λ•Œ μ œλŒ€λ‘œ μž‘λ™ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 메인 λ°±μ—”λ“œ μ„œλ²„μ— μ—°κ²°λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ„€μ΄ν‹°λΈŒ λ°˜μ‘: 0.57.8
λ°˜μ‘: 16.6.3
socket.io ν΄λΌμ΄μ–ΈνŠΈ: 2.0.4

이것은 λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ μ„œλ²„ 츑의 socketio js 버전을 2.0.4둜 λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 같은 λ¬Έμ œμ— 직면 ν•΄μžˆλ‹€

@jr-k의 λ¬Έμ œλŠ” #1245의 https://github.com/socketio/socket.io-client/issues/1245#issuecomment -451285245에 따라 @anooj1483 의 ν•΄ν‚Ή 후에도 μ§€μ†λ©λ‹ˆλ‹€.
그것은 λ‚˜λ₯Ό μœ„ν•΄ λ™μΌν•˜λ‹€

같은 λ¬Έμ œμ— 직면해 μžˆμŠ΅λ‹ˆλ‹€. 디버그 λͺ¨λ“œκ°€ 켜져 있으면 잘 μž‘λ™ν•˜μ§€λ§Œ 디버그 λͺ¨λ“œκ°€ κΊΌμ Έ μžˆκ±°λ‚˜ apkκ°€ 릴리슀 λͺ¨λ“œλ‘œ λΉŒλ“œλ˜λ©΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Versions:
"react": "16.8.2",
"react-native": "0.58.4",
"socket.io-client": "^2.2.0"

λ‹€λ₯Έ λͺ¨λ“  μ‚¬λžŒλ“€κ³Ό 같은 λ¬Έμ œμž…λ‹ˆλ‹€. λ””λ²„κΉ…ν•˜λ©΄ μ™„λ²½ν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.
React λ„€μ΄ν‹°λΈŒ μ•± 버전:
"λ°˜μ‘": "16.5.0",
"λ°˜μ‘ λ„€μ΄ν‹°λΈŒ": "^0.58.4",
"socket.io-client": "^2.1.1"

μ„œλ²„ 버전:
"socket.io": "2.0.4"

socket.io-client: 2.0.4 λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€.

2.0.4 + ReactNativeλ₯Ό μ‚¬μš©ν•  λ•Œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

TypeError: undefinedλŠ” 객체가 μ•„λ‹™λ‹ˆλ‹€('n.protocol' 평가)

image

디버그 λͺ¨λ“œμ—μ„œ λ‹€μŒκ³Ό 같이 host:port λ₯Ό μΆ”κ°€ν•  λ•Œ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

const μ†ŒμΌ“ = io(" //domain.com:port ", opts); // 이것은 디버그 λͺ¨λ“œμ—μ„œλ§Œ μž‘λ™ν•©λ‹ˆλ‹€.

NO 디버그 λͺ¨λ“œμ—μ„œ μž‘λ™ν•˜μ§€ μ•Šμ•„ ν”„λ‘œν† μ½œμ„ μΆ”κ°€ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

const μ†ŒμΌ“ = io(" http://domain.com:port ", opts);

λ‚˜λŠ” 같은 λ¬Έμ œκ°€μžˆλ‹€
react-native : 0.57.8 ,
socket-io-client : 2.2.0
디버그가 ν™œμ„±ν™”λœ κ²½μš°μ—λ§Œ μž‘λ™ν•©λ‹ˆλ‹€.

아무도 이것에 λŒ€ν•œ μˆ˜μ • 사항을 아직 μ°Ύμ•˜μŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” μš΄μ—†μ΄ νŒ¨ν‚€μ§€μ˜ μ—¬λŸ¬ λ‹€λ₯Έ 버전을 μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€

이 였λ₯˜/λ²„κ·Έμ˜ 원인은 μ—¬λŸ¬ 가지가 μžˆμ§€λ§Œ 제 것은 λ§Žμ€ 원인 쀑 ν•˜λ‚˜μΌ λΏμž…λ‹ˆλ‹€.

λ‹€μŒκ³Ό 같이 githubμ—μ„œ λ§ˆμ§€λ§‰ 버전을 μ‹œλ„ν•˜κ³  RN android 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

npm i socketio/engine.io-client#3.3.2 -S

건배

디버그 λͺ¨λ“œμ—μ„œ λ‹€μŒκ³Ό 같이 host:port λ₯Ό μΆ”κ°€ν•  λ•Œ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

const μ†ŒμΌ“ = io(" //domain.com:port ", opts); // 이것은 디버그 λͺ¨λ“œμ—μ„œλ§Œ μž‘λ™ν•©λ‹ˆλ‹€.

NO 디버그 λͺ¨λ“œμ—μ„œ μž‘λ™ν•˜μ§€ μ•Šμ•„ ν”„λ‘œν† μ½œμ„ μΆ”κ°€ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

const μ†ŒμΌ“ = io(" http://domain.com:port ", opts);

socket.io 2.1.1 및 react-native 0.59.8μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€. μ‚¬λž‘ν•΄μš” @ningacoding πŸ‘ πŸ‘

μ•ˆλ…•ν•˜μ„Έμš” @autotrof μž…λ‹ˆλ‹€ .
react-native 0.59.8 및 socket.io둜 μ‹œλ„ν–ˆμ§€λ§Œ 릴리슀 λΉŒλ“œμ—μ„œ μ—°κ²°ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
IP와 포트λ₯Ό μ‚¬μš©ν•˜μ—¬ μ—°κ²°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
제발 λ‚  μ’€ 도와 쀄 수 μžˆλ‹ˆ?

아직 ν•΄κ²° λͺ»ν•˜μ‹  λΆ„ κ³„μ‹ κ°€μš”?
λ‚˜μ˜ κ²½μš°μ—λŠ”

react-native : 0.61.5
socket.io-client: 2.3.0 (I tried another version, 2.1.1, 2.0.1, 2.1.0)

λ‚˜λŠ” λ§ˆμ°¬κ°€μ§€λ‘œ 디버그 λͺ¨λ“œμ—μ„œλ§Œ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€ :(

console.dir() λ₯Ό console.log() 둜 λ³€κ²½ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.
console.dir() κΈ°λŠ₯은 릴리슀 λͺ¨λ“œλ₯Ό μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ πŸ˜ƒπŸ˜ƒ

λ‚˜λ₯Ό μœ„ν•΄ μΌν•œ μ•ˆλ“œλ‘œμ΄λ“œμ—μ„œ 이것을 μ‹œλ„ν•˜μ‹­μ‹œμ˜€

android:name= ".MainApplication"
android:label= "@string/app_name"
android:icon= "@mipmap/ic_launcher"
android:roundIcon= "@mipmap/ic_launcher_round"
android:allowBackup= "거짓"
android:usesCleartextTraffic= "true" <-- μΆ”κ°€

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰