조회 2,398 댓글 1 좋아요 1 싫어요 0
2015.09.07 17:03:50

미니톡은 기능확장을 위한 많은 API를 제공하고 있습니다.

오늘은 몇가지 이벤트 리스너를 통해 필터링 기능을 만드는 방법에 대해 알아보겠습니다.


여기서 가장 중요한 것은 beforeSendMessage 이벤트 리스너입니다. API문서를 보시면 좀더 많은 기능을 알 수가 있어요.

많은 before가 붙은 이벤트 리스너가 그러하듯이 'false' 가 반환되면 해당 기능이 동작을 멈춥니다.

beforeSendMessage는 이 부분을 활용하여 몇가지 동작을 추가적으로 활용할 수 있도록 도와줍니다.



var filterWords = ["바보","똥개","말미잘","멍개"...]; // 필터링할 단어를 적어줍니다.

new Minitalk({
    channel:"example",
    // 생략
    listeners:{
        beforeSendMessage:function(m,message) {
            var match = str.match(new RegExp(filterWords.join("|")));
            if (match != null && match.length > 0) {
                m.printMessage("system",match[0]+"단어는 금지어 입니다."); // 금지어라고 알려줌
                return false; // 대화입력중지
            }
        }
    }
});

사용자가 "너는 바보야!" 라고 치면 바보가 필터링 단어이기 때문에 채팅창에

"바보단어는 금지어 입니다." 라고 나오고 유저 대화가 전송되지 않고 취소되게 됩니다.


많은 도움이 되셨으면 하는 바람입니다.