> 웹 프론트엔드 > JS 튜토리얼 > node_node.js의 소켓.io 이벤트 사용법에 대한 자세한 설명

node_node.js의 소켓.io 이벤트 사용법에 대한 자세한 설명

WBOY
풀어 주다: 2016-05-16 16:26:54
원래의
1711명이 탐색했습니다.

socket.io 클래스 라이브러리는 서로 메시지를 보낼 수 있을 뿐만 아니라 소켓 포트 개체의 내보내기 메서드를 통해 이벤트도 서로 보낼 수 있습니다.

emit은 이전 이벤트에서 언급했지만 이제는 한 문장으로 표현됩니다. Emit은 이벤트를 수동으로 트리거하는 데 사용됩니다.

코드 복사 코드는 다음과 같습니다.

소켓.방출(이벤트,데이터,함수(데이터1,데이터2...){
});

emit 메소드를 사용하여 이벤트를 보낼 때 상대방 소켓 포트 객체의 on 메소드와 Once 메소드를 사용하여 수신할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

소켓.온(이벤트,함수(데이터,fn){
});
소켓.한번(이벤트,함수(데이터,fn){
})

위 콜백 함수의 매개변수 데이터 : 상대방이 보낸 이벤트에 담긴 데이터,

fn : 이벤트 전송 시 상대방이 지정한 콜백 함수

사례 1: 서버와 클라이언트가 연결되면 뉴스 이벤트가 클라이언트에 전송됩니다. 해당 이벤트는 클라이언트를 수신한 후 다른 이벤트 이벤트를 전송합니다. 클라이언트는 이벤트에 담긴 데이터를 콘솔에 출력합니다.

서버측 코드, server.js

코드 복사 코드는 다음과 같습니다.

var http=require("http");
var sio=require("socket.io");
var fs=require("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 소켓=sio.listen(서버);
소켓.on("연결", 함수(소켓) {
Socket.emit("news",{hello:"Hello"});
소켓.on("다른 이벤트", 함수(데이터) {
console.log("서버가 %j 정보를 받았습니다.",data);
});
});

클라이언트 index.html 코드:

코드 복사 코드는 다음과 같습니다.








        var 소켓=io.connect();
소켓.on("뉴스", 함수(데이터) {
console.log(data.hello);
Socket.emit("my other event",{my:"data"});
         });                                               





실행 결과:,

한 가지 발견할 수 있는 사실은 실행이 수동 실행 측이 아니라 항상 수신 측에서 이루어진다는 것입니다.

사례2: 상대방의 이벤트를 수동으로 발생시킬 때 콜백 함수를 지정하세요.

클라이언트와 서버가 연결되면 setName 이벤트가 클라이언트로 전송됩니다. 이벤트가 트리거되면 콜백 함수가 2개의 매개변수 값을 출력합니다. 콘솔로.

코드 복사 코드는 다음과 같습니다.

 var http=require("http");
 var sio=require("socket.io");
 var fs=require("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 소켓=sio.listen(서버);
 소켓.on("연결", 함수(소켓) {
     소켓.emit("setName","张三", function (data1,data2) {
         console.log(data1);
         console.log(data2);
     });
 });

复主代码 代码如下:

 
 
 
    
    
    
    
         var 소켓=io.connect();
         소켓.on("setName", 함수 (이름,fn) {
            console.log(이름);
             fn("이사","王五");
         });     
    
 
 
 
 
 
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿