Angular 2์ socket.io-client๋ฅผ ์ถ๊ฐํ๋ ค๊ณ ํฉ๋๋ค.
๋๋ ์ด๋ฏธ ๋ชจ๋๊ณผ ๋ชจ๋ ๊ฒ์ ์ค์นํ์ผ๋ฉฐ ์๋ง๋ ํ์ํ ๊ฒ ์ด์์ผ ๊ฒ์
๋๋ค.
npm install @types/socket.io --save-dev
npm install @types/socket.io-client --save-dev
typings install dt~socket.io-client --save --global
typings install dt~socket.io --save --global
๊ทธ๋ฆฌ๊ณ ๋ ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๋ํ์ฌ ๊ตฌ์ฑ ์์์์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์๋ํ์ต๋๋ค.
import * as io from "socket.io-client";
//declare var io:any;
๊ทธ๋ฌ๋ ์ฌ์ ํ ๋ด ๋ธ๋ผ์ฐ์ ์์ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
http://localhost:4200/socket.io/?EIO=3&transport=polling&t=LeKQjxc 404 (Not Found)
๋์๊ฒ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ํ์ฌ wss://echo.websocket.org ์์ ํ ์คํธ ์์ผ์ ์ฐ๊ฒฐํ๋ ค๊ณ ์๋ํ์ง๋ง ์๋์ผ๋ก /socket.io/๊ฐ ์ถ๊ฐ๋์ด 404 ์๋ต์ผ๋ก ์ด์ด์ง๋๋ค.
์
๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๋๋ socket.io๋ฅผ ์ฐ๋ฆฌ ์ฑ์ ํตํฉํ๋ ค๊ณ ์๋ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์์ต๋๋ค. Angular CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ์ ์ค์นํ๊ณ tsconfig.app.json
์ ํฌํจํ์ง๋ง ์ฌ์ ํ ๋์ผํ 404 ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ ํจ๊ณผ๊ฐ ์๋ ๊ฒ ๊ฐ์ง๋ง ์ฐ๋ฆฌ์๊ฒ๋ ๊ทธ๋ ์ง ์์ต๋๋ค!
์๋ฒ ๊ตฌ์ฑ์ ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
@darrachequesne ์๋ ํ์ธ์! ๋ค, ๋ค์๋ ์๋ฒ ๊ตฌ์ฑ์ ํ์ธํ ํ ์๋ํ์ต๋๋ค. ์ ๋ง ์ด๋ฆฌ์์ ์ค์์์ต๋๋ค... ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผ ์ฃ์กํฉ๋๋ค! ์์ ๋ค๋ฅธ ์ฌ๋๋ค์ ํ์คํ์ง ์์ต๋๋ค. ๋ค์ ํ๋ฒ ๊ฐ์ฌํฉ๋๋ค!
@crebuh socket.io ๋ wss://echo.websocket.org
์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค( Websocket ์ ๊ฐ๋ฅํ ์ ์ก์ผ๋ก ์ฌ์ฉํจ).
@AhadCove ์๋ฒ์ ๋ํ ๊ตฌ์ฑ์ ์ ๊ณตํด ์ฃผ์๊ฒ ์ต๋๊น?
@darrachequesne ์ฐ๋ฆฌ์ ๋ฌธ์ ๋ ์ด ์์น๋ฅผ ์ถ๊ฐํด์ผ ํ๋ nginx ๊ตฌ์ฑ์ด์์ต๋๋ค.
location ~/(socket\.io).*$ {
proxy_pass http://127.0.0.1:6005;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
๊ทธ๋ฐ ๋ค์ ์๋ํ์ต๋๋ค :)
@ํฌ๋ ๋ถ ๋๋จํด! ์ง๊ธ ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ๋ค์ ์ด์ด์ฃผ์ธ์.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@darrachequesne ์ฐ๋ฆฌ์ ๋ฌธ์ ๋ ์ด ์์น๋ฅผ ์ถ๊ฐํด์ผ ํ๋ nginx ๊ตฌ์ฑ์ด์์ต๋๋ค.
location ~/(socket\.io).*$ { proxy_pass http://127.0.0.1:6005; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }
๊ทธ๋ฐ ๋ค์ ์๋ํ์ต๋๋ค :)