개인 자료란 (JE)

  서버 커뮤니티

Profile 라고솔로가말했습니다 대표칭호 없음

SaidBySolo 8b58f951b6404b78ae3ba92d55d431f7

Profile

커뮤니티 소통 개발하기 디스코드

[4강:Ping Pong!] 파이썬으로 디스코드봇 민들어보기

2020.03.08 조회 수 2321 추천 수 0

3강 

거의 한달여 만에 작성해보는 강의글입니다

봇프로젝트에 몰두하느라 ;-;

그러면 빠르게시작합시다.


e21ab84c91c26f19c30917b8d9c77755.png이미지를 클릭해 자세히 확인가능

클라이언트 내 함수인 latency를 사용하여 핑측정을 해보려고합니다

디스코드의 웹소켓 프로토콜의 지연시간을 측정할수있습니다.(채팅까지 걸리는 딜레이는 추후 강의에작성하도록함)


5cd5a941a2f4eea67305a3b057447775.png

코드설명은 주석처리를 확인해보시면됩니다.

이제 만약 1강부터 차근차근 따라오신분의 코드라면

import discord 
from discord.ext import commands

bot = commands.Bot(command_prefix='!') 

token ='paste token' 

@bot.event 
async def on_ready():
    print("실헹...... 실행이 잘되네요...?")

@bot.command() 
async def 안녕(ctx): 
    await ctx.send("안녕,세상!") 

@bot.command()
async def ping(ctx):
    latancy = bot.latency
    await ctx.send(latancy) 

bot.run(token)

이런식으로 지금까지 작성되었을껍니다.

자실행해볼까요?


51818aba0e46d5c26b563010a055e30d.png

실행된결과입니다.

소수점단위로 표시되도 놀라지마세요!

이제 저희는 이걸 ms(밀리세컨드)단위로 변환시켜볼꺼에요


ms단위이기때문에 1000을 곱해줍니다.

caf00338e368da64fbc19b453e44472f.png

출력을 해볼까요?

d3b739166beb85a31c456deed6d424fb.png

값이 잘나오긴하지만  파이썬의 round함수를 사용해서 첫째자리를 반올림하여 출력합시다.

2ddafbb99d76a97519a2ac5fb1ece096.png

출력해봅시다!

3d23ecf899b58d8e2d9132678e31b7fb.png

값이 잘나오는것을 확인할수있었습니다.

이제 여기에 살을 붙여봅시다!


f2f484fa2335b10a8aac2e31ecc4364f.png

설명은 주석을 참고하시면되겠습니다.

자 출력해봅시다.

673e4641b6498dc761a0d372b60138bb.png

웹소켓의 딜레이를 확인해볼수있었습니다.

하지만 웹소켓과 통신할때의 지연시간일뿐

채팅창에 전송되는 지연시간하고 다를수있습니다.

처음에 말씀드렸다싶이 채팅창에 전송되는 지연시간을 구하는방법은

추후 강좌에 설명드리겠습니다.

다음편에는 응답 심회편을 써보겠습니다.

항상 외출하실때 조심하세요!


번외.

미국리전 웹소켓딜레이,채팅딜레이

90382f19eca68c31d707950a342aacda.png

위에서 실행한 결과가 채팅까지의 걸리는 지연시간

아래가 웹소켓의 딜레이시간입니다.

디스코드봇은 미국리전에 두시는것이 매우좋습니다.

문의는 윗디코!

한디포에서 오셨다고 말씀해주시면 감사하겠습니다!




6개의 댓글

레도
2020.03.08

감사합니다

GUEST1209
2020.03.09

파이썬 3.6.5 버전 기준 핑 만드는 법좀 알려주세요 ㅇㅅㅇ..

@GUEST1209

해당 게시글 따라하셔도 무방합니다.

GUEST1209
2020.03.09
@라고솔로가말했습니다

다행히도 제가 잘못 썼던것이었습니다

답변 감사합니다.

우섭
2020.03.26

다른형식 봇코드여도 조금만 수정하면 잘 되네요!

감사합니다!

mchang
2020.05.24

오 디스코드 봇이 있네여...