var http = reqruie('http').createServer();
var socketio = require('socket.io');
socketio.listen(server);
이건뭐임?
http 서버하나를 클라이언트에서도쓰고 , 소켓에서도 쓰겟다말임?
아니 보통
listen함수에는 포트번호랑 , 콜백함수주잔아
ex) listen(3000,function() {
console.log ( ' good ');
}
근데시발 뭔 http인스턴스를 주고앉아잇냐고 -_-;
쿄스케님 기다리고잇겟습니다.
즐거운 하루 되십시요 ^^,,하하..
아 그리고 염치없지만 한가지만 더 물어보고싶습니다 socketio.llisten()으 ㅣ반환값은 뭡니까? (도저히검색해도안나옴 .. 관련자료사이트주신다면 그걸로도감사...) 아시는분은 답변달아주시고 제 싸대기날리고가주시면됩니다...
socket.io가 http 서버로 구현되지. 웹 소켓을 쓰니까.
socket.io는 http와는 전혀 별개의 프로토콜임. 다만 기본적으로 80포트를 쓸 수 있기때문에 80 포트에 이미 http server 나 express 등을 사용하고 있는 경우엔 http나 express instance를 socket.io 생성자에 넘겨줌으로써 기존의 http 처리는 express나 http server가 맡고 socket.io의 처리의 경우엔 자연스럽게 넘겨줄수 있기때문에 http instance를 줌 그냥 너가 socket.io만 쓸꺼면 var io = require('socket.io')(80); 해도 됨.
http://socket.io/docs/
여기에 다 나와있는 내용임
ㄴ 뭔 개소리야. socket.io가 기본적으로 웹 소켓을 쓰고 웹 소켓은 HTTP 기반인데.
socket.io는 웹소켓을 쓰는게 맞지만 웹소켓은 http 기반이 아님 처음에 upgrade request 만 보내고 그 뒤 패킷을 가보면 http 와는 전혀 다른 프로토콜로 동작하는게 보임 직접 깔아서 패킷스니핑해보셈
dart님아 ㅡㅡ 아니시발 soketio api docmuents는 존나최악엥요 진짜 ㅡㅡ 그보니까 인스턴스를 new없이 생성할수잇다는정보박에없고 다른 함수는 전혀 설명이안되잇음 ㅡㅡ 그럼 다시 본론으로돌아가서 , socket서버에 http서버인스턴스를 넘겨주는게 가능한 이유는 왜없음?
아니그리고 ㅅㅅㅅ님아 님은씨빨 댓글을 왜그렇게 성의업게해요? socketio가 웹소켓인건 나도알음 이시발련아
이유를 다 적어놨잖아 잘 생각해봐.. socket.io documents 가 별로없는건 사실인데... 그래도 필요한건 다 적혀있음
http://en.wikipedia.org/wiki/WebSocket
여기보면 handshake 과정을 제외하곤 http와 관련없다고나옴
그러니까 쉽게 http 서버랑 websocket이랑 같이 쓰기위해서 http 인스턴스를 넘겨준다고 socket.io만 쓸꺼면 안넘겨줘도됨 ㅇㅋ?
존나 답답한 애네. HTTP 프로토콜에서 data part를 접속을 안 끊고 계속 주고 받게끔 만든 게 웹 소켓이잖아. HTTP를 발전시킨 게 웹 소켓인데 계속 헛소리할래? 패킷 스니핑 누군 안 해 본 줄 아냐. 너는 패킷 스니핑 해놓고 그게 어떻게 돌아가는 건지 원리도 모르는 거냐? ㅋㅋ
뭘 설명해노 ㅏ ㅡㅡ 자연스럽게 넘겨줄수잇기떄문에ㅐ?? 이게 설명이냐ㅡㅡ 아니 하나의 포트로 http처리도하고 socket도한다는거임?
http://tools.ietf.org/html/rfc2616#section-14.42
upgrade 프로토콜은 http 프로토콜 외의 다른 additional 한 프로토콜을 지원해주기 위해서 그런건데, handshake하는 과정이 http라 http 프로토콜이라 그러는거면 할말없음
아 저 새끼 말 안 통하네. 이미지 파일을 http로 파일 업로드 전송하면 data part에 이미지 포맷이 담기니까 jpeg 포맷인거냐? ㅋㅋ
HTTP의 data part를 연결 끊지 않고 서로 데이터 주고 받는 게 웹소켓이라고. 직덥 웹 소켓 클라이언트랑 서버 구현 해 본 거 아니면 말을 말어. 내가 저거 직접 구현해 봤는데 ㅡㅡ 어디서 소켓IO만 쓸 줄 아는 놈이 깝치네.
https://tools.ietf.org/html/rfc6455
1.7. Relationship to TCP and HTTP
그리고 좀 너무 몰아부치시는건 아니라고봅니다 그렇게 신경건드릴말안했는데. 패킷스니핑하라는 말이 그렇게 거슬리나요? 전혀 풀발기하실일이아닙니다
내가 언제 몰아부쳤다고 그래. 좆도 모르는 놈이 아는 척 하길래 틀렸다고 지적한 거 뿐인데.
아 계속 금지어 때문에 못 치고 있네.
지금 나도 금지어 때문에 못쓰고있음
내가 한 말이 결국 표준에서 한 말이랑 같아. 웹 소켓이 구현이 http form data 부분에 데이터를 보내는 건데 단지 접속을 끊지 않을 뿐이라니까?
https://webchat.freenode.net
#pg
즉 웹소켓은 http의 상위 호환이라는 건데 왜 표준을 제대로 이해를 못해서 자꾸 똥글만 싸.
채팅방 들어갈 이유 없다. 나 그렇게 한가한 사람 아니고 디씨에서 덧글 단 것도 충분히 시간 많이 썼어.
ㅅㅅㅅ님아 님잘낫으면 끄지셈 냄새나니ㄴ까시발아 다트님아 그니가 하나의포트로 http와 소켓을한다는거임? 그럼 이렇게하는이유는 포트를아끼기위함?
dart는 시간 그렇게 남아 돌면 글쓴 넘 질문이나 답변해 줘라.
글쓴이는 인성안좋아서 답변 중단함
음 나도 좆밥인데 나한테 물어보네 ㅋㅋ 웹소켓을 스프링에서 써보고 노드js 써봤는데 노드 js는 웹소켓용으로만 써서 내가 해보진 않음. 근데 웹소켓만 쓰더라도 예제가 많이 나와서 보긴 봤는데 저런 was랑 웹소켓 서버를 같이 쓴다는 거겠지. 나는 was쪽은 스프링 쓰고있거던. html 찍어내는게 node.js 보단 스프링이 더 익숙해서. port라는게 어차피 물리적 개념이 아니라 논리적 개념이라 포트를 아끼고 말고 할건 없을듯 하고. 그냥 사람 성격에 따라 나뉘지 않을까? 어플 하나에 포트 나누는거 좋아하는 사람이나 그냥 하나로 가는 사람이나. 나같은 경우는 뭐랄까 채널 개념이라고 해야하나? 그런 개념으로 웹소켓 포트 2개 쓰고있어. 점차 늘어날수도 있고. node에 room이 지원되는데
굳이 port를 더 나눈 이유는 room join 하고 leave하는게 빈번해질거 같은 경우가 있어서 이 경우는 port 하나 더 빼서 그쪽에서 관리하게 했거던. 이렇게 관리하니까 나같은 경우는 더 편하더라.
그럼 하나의포트에 여러개의 서버를 연결할수잇다는겅ㄱㅁ?
socket.io 코드 찾아봤는데 socket.io의 하위단이 http고 그 위에서 socket.io가 웹소켓을 구현하는 방식이 맞는거 같은데?
내가 보기엔 http가 tcp단 위에서 구현되니까 http가 tcp로 구현된다고 말할 수 있으니 웹소켓이 http로 구현된다고 말하는 것에도 아무 문제가 없어 보이는데..
음 글쎄.. was랑 wss는 되는데.. 다른식으로는 가능할지.. 지금 나도 궁금해서 웹소켓 port를 하나로 하고 웹소켓 서버 2개 열어보려 했는데 에러나네 하나의 포트에 여러개의 서버를 연결할 필요가 있어?
웹소켓이 http 프로토콜 쓰는거 맞음
웹 소켓이 동작하기 위해서 제일 처음 서버와 연결이 되어야 한다. HTML5가 제공하는 WebSocket 객체를 통해 서버 연결을 수행한다. 일반 통신은 ws, 보안 통신은 wss 프로토콜을 이용한다기본 포트 역시 http,https와 동일한 80,443을 이용한다
ㅁ // ㅇㅇ 맞아. socket.io가 웹 소켓을 쓰고 웹 소켓은 HTTP 확장이니까. 그러니까 http form data part에 고유한 형식대로 데이터를 주고 받는 거임. HTTP에서 폼 데이터를 연결을 끊지 않은 채 계속 그냥 특정 커스텀 형태로 주고 받는 게 웹 소켓.
socket.io의 경우에는 웹소켓이랑 플래쉬소켓이랑 롱폴링 등등 지원이 됨. 웹소켓이 html5 스펙이라 html5지원 안되는 브라우져에서는 플래쉬나 다른걸로 연결이 유지됨.
ㅅㅅㅅ 쟤 왜그냐? ㅁㅊ 건가? 왜 욕이냐?
ㅅㅅㅅ 이넘은 그냥 자기가 몰랐다고 사과하면 되는데 끝까지 우기네? 새로 표준을 정한 프로토콜인데. 꼭 며칠전 코세를 보는거가타.
웹 소켓이 데이터 전달을 위해 WS, WSS라는 자체 프로토콜을 쓰기는 하고 이 프로토콜은 http랑 상관 없는 건 맞는데, 이게 http form data에 넘어가는 데이터에 대한 프로토콜임. OSI 7 layer 같은 계층 구조에서 TCP랑 FTP의 관계 같달까. HTTP의 상위 프로토콜일 뿐. 웹 소켓은 HTTP를 확장시킨 거에 불과해.
HTTP로 이미지 파일 업로드하면 jpeg 프로토콜인 거냐고 아놔 ㅋㅋㅋ 말귀를 끝까지 못 알아 쳐먹네.
ㅅㅅㅅ 이너믄 왜그냐? 코세냐? 어째 하는게똑같냐? ㅆ바 mfc 같은거에서 처음기본클래스 만들고 나머지는 거의 그거 상속받아쓰는데 이새낀 전부 하나의 함수라고할너미네. ㅆ바 이게 무슨 파인만의 단일전자우주론이냐? ㅋㅋㅋ ㅂㅅ
웹소켓이 handshake 제외하고 http랑 관계 없다고 말하는건 정말 관계가 없다는 게 아니라, 웹소켓이 http 위에 쌓아올리는 뭔가가 많고, http의 디테일 중에 필요한 부분만을 취했다는 표현으로 보임. 애초에 http가 제약사항이 별로 없어서 헤더 보내고 내용 보내고 연결 끊으면 할일은 거의 다 한건데, long polling에서 하듯이 연결을 좀 오랫동안 유지하는 방식을 개선해서 표준화한게 웹소켓 아닌가
위의 말에 따르면 socket.io가 웹소켓만 구현하는 건 아니겠지만, 어쨌든 질문자가 물었잖음. socket.io가 왜 http의 인스턴스를 받냐고. 그에 대한 대답으론 적절한 것 같은데 왜 자꾸 문제를 추가하려고 하는지..
난 ㅁ랑 똑같이 생각하고 그런 의미에서 웹 소켓이 http로 구현된 거라는 얘기를 한 건데 난독증 있는 놈들이 계속 시비 텀 ㅋㅋ
a // 얜 그냥 병신이네. 흑백 논리로 몰아갈 게 아니라 비중을 봐야지. WebSocket이 HTTP extension인 건 확실한데. 내가 언제 웹 소켓이 Ethernet이라고 말한 적 있음? 무슨 내 논리가 제일 밑 단에 있는 거 말하는 걸로 착각하는 병신도 있네.
이미지 파일을 http로 업로드하면 그건 http가 아니라 jpeg 포맷으로 규정된 프로토콜이냐고 ㅋㅋ 내가 묻잖아 ㅋㅋ 병신련아
ㅂㅅ 단방향 통신에서 양방향통신으로 패러다임이 변한건데 뭔 개솔? 이 엄청난 변화에도 불구하고. ㅂㅅ아 그게 같은거면 세상에 다른게어딧겠냥?ㅋㅋㅋ 뇌내망상에서 정신승리하고 끝내라. 딱 코세네. 관두자. ㅋㅋㅋㅋㅋ
니 논리대로라면 웹 소켓은 TCP 프로토콜이 아닌 거야? 병신새끼야
그 패러다임 변화가 ws, wss로 이루어진 게 아니라 http 동작을 재정의한 http extension 관점에서 일어난 거잖아. ws, wss는 데이터 포맷일 뿐이고.
글고 닌 니가 유리할땐 그러케 세밀하게 따지더니. 이런데선 왜케 허술하게 따지셔? ㅋㅋㅋ 내가 졋다. 그만두자. 넌 인간성을 고쳐야돼. 함부로 욕해대고. 난 dc에서도 오늘 첨 욕해봣다 ㅄ 이런말도. 넌 글럿어. 반성해라.
내가 언제 허술하게 따졌다고 그래. 허술한 건 그쪽이면서. 쫄리는지 관두자고 말해놓소 계속 대응하네. 대외적으로 자기가 유리해 보이는 논쟁이면 그냥 나를 병신 취급하고 답을 안하면 뒬 걸 자기가 대외적으로 불리한 걸 아는지 계속 답을 다네. 이상한 소리까지 하먼서.
말해놓소 > 말해놓고
나야 씹선비라 잘못된 말이 있으면 끝까지 대응하는 거고. 닌 관둔다며 계속 대응하는 저의가 뭐냐? ㅋㅋ 풉 병신
병신새끼한텐 욕 밖에 할 말이 없지. 안 그래? 내가 왠만하면 욕 안 쓰려고 하는데 병신새끼한테는 욕을 써. 욕 안 쓰게 좀 만들어줘 니네들이.