socket.io를 사용하여 Socket.io 서버를 만듭니다. 그러나 서버는 이미 생성 된 HTTP 서버에 따라 다릅니다.
HTTP 서버가 실행되면 청취 방법을 사용하여 Socket.io 서버를 HTTP 서버에 첨부하십시오.
코드 사본은 다음과 같습니다.
var sio = 요구 사항 ( "scoket.io");
var socket = sio.listen (서버);
Socket은 서버에서 생성 된 Socket.io 서버입니다.
클라이언트가 서버와 연결을 설정하면 Socket.io 서비스의 연결 이벤트가 트리거됩니다.
코드 사본은 다음과 같습니다.
socket.on ( "연결", 함수 (소켓) {
});
콜백 함수의 소켓 매개 변수는 서버와 클라이언트 간의 연결을 설정하는 소켓 포트 객체입니다.
클라이언트가 보낸 메시지가 수신되면 소켓 포트 개체의 메시지 이벤트가 발행됩니다.
코드 사본은 다음과 같습니다.
socket.on ( "메시지", 함수 (msg) {
});
콜백 함수의 매개 변수는 클라이언트가 보낸 메시지입니다.
Socket.Send (MSG)를 사용하여 클라이언트에게 메시지를 보낼 수 있습니다.
서버 측 클라이언트 측 연결이 연결이 끊어지면 분리 이벤트가 트리거됩니다.
코드 사본은 다음과 같습니다.
Socket.on ( "DisponceNct", funciton () {
});
이 콜백 함수는 매개 변수를 적용하지 않습니다.
Server-Side Server.js 코드 :
코드 사본은 다음과 같습니다.
var http = 요구 사항 ( "http");
var sio = require ( "socket.io");
var fs = 요구 ( "fs");
var server = http.createserver (function (req, res) {
res.writehead (200, { "content-type": "text/html"});
res.end (fs.readfilesync ( "./ index.html"));
});
Server.Listen (1337);
var socket = sio.listen (서버);
socket.on ( "연결", 함수 (소켓) {
Console.log ( "클라이언트 연결 설정");
socket.send ( "Hello");
socket.on ( "메시지", 함수 (msg) {
Console.log ( "메시지를 받았습니다 :"+msg);
});
Socket.on ( "DisponceNce", function () {
Console.log ( "클라이언트 연결 끊기");
});
});
클라이언트 index.html code 만들기 :
코드 사본은 다음과 같습니다.
<! doctype html>
<html>
<head lang = "en">
<meta charset = "utf-8">
<제목> </title>
<script src = "/socket.io/socket.io.js"> </script>
<cript>
var socket = io.connect ();
socket.on ( "메시지", 함수 (데이터) {
Console.log (데이터);
socket.send ( "메시지 허용")
});
Socket.on ( "DisponceNce", function () {
Console.log ( "서버 측 분리.");
});
</스크립트>
</head>
<body>
</body>
</html>
이 코드 : /socket.io/socket.io.js에는 Server-Side Socket.io 클래스 라이브러리가 제공되며 실제로 Client에 socket.io.js 파일을 배치 할 필요가 없습니다.
스크립트 파일에서 먼저 io.connect () 메소드를 사용하여 서버 socket.io 서버에 연결하십시오.
이 메소드는 서버에 대한 연결을 설정하는 클라이언트 소켓 포트 개체를 반환합니다.
서버에서 메시지가 수신되면 클라이언트 소켓 포트 개체의 메시지 이벤트가 트리거됩니다.
코드 사본은 다음과 같습니다.
socket.on ( "메시지", 함수 (msg) {
});
MSG는 서버가 전송하는 데이터입니다.
클라이언트 소켓 객체의 send () 메소드를 사용하여 서버로 데이터를 전송할 수도 있습니다.
코드 사본은 다음과 같습니다.
Socket.send (MSG);
서버가 연결이 끊어지면 클라이언트 소켓 포트 오브젝트의 분리 이벤트가 트리거됩니다.
코드 사본은 다음과 같습니다.
Socket.on ( "DisponceNce", function () {
})
이 콜백 함수는 매개 변수를 사용하지 않습니다.
알아채다:
클라이언트의 메시지 메커니즘은 서버 측 메시지 처리 메커니즘과 정확히 동일합니다. socket.io는 클라이언트와 서버가 동일한 API를 공유하도록합니다.
실행 후 결과 :
브라우저가 닫히면 서버에 대한 연결이 연결이 끊어집니다. 현재 서버는 분리 이벤트를 트리거하고 클라이언트는 연결을 끊습니다.