1

現在、ゲーム制作の真っ最中です。

ここを見つけてください: https://docs.google.com/document/d/1zxC9Mo9LtcMf3jXA3z4xdz7Lj3G3EVGA4_CQzjoeyOA/edit?usp=sharing

新しい誰かが参加したときにメッセージを受け取るようにしようとしています。私の現在の方法は、特定のポートを介してサイトをコンピューターに接続することです。これにより、次の python スクリプトがトリガーされます。

import discord
import asyncio
import websockets
import threading
f = open('runs.txt', 'r')
runs = int(f.readline())
f.close()
def write(input):
    f = open( 'runs.txt', 'w' )
    f.write( str(input) )
    f.close()
username = '<Bot Username>'
password = '<Bot Password>'
client = discord.Client()
client.login(username, password)
chan =  discord.PrivateChannel('<Username>', <Channel ID>)
@asyncio.coroutine
def hello(websocket, path):
    global runs
    input = yield from websocket.recv()
    print(input)
    if input == 'started':
        runs += 1
        write(runs)
        client.send_message(chan, 'User has played Daedalus')
start_server = websockets.serve(hello, '<My public IP>', <Forwarded Port>)


@client.event
def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')


@client.event
def on_message(message):
    if message.content.lower().startswith('check'):
        client.send_message(message.author, 'There are now '+ str(runs) + ' computers that have played daedalus')


def asyncBegin():
    asyncio.get_event_loop().run_until_complete(start_server)
    asyncio.get_event_loop().run_forever()

disco = threading.Thread(target=client.run)
disco.start()

asy = threading.Thread(target=asyncBegin())
asy.start()

このプログラムは、オンライン アプリの Discord を使用して、私が作成したボットを介してメッセージを送信します。言及されているテキスト ドキュメントは、実行数を保持するためのものです。ゲームでは、正しいポート番号を使用してパブリック IP にすぐに接続するようにプログラムされており、プログラムを実行する必要があります。

localhost では正常に動作することがわかりましたが、Web 経由で接続しようとするとすぐに動作しません。

接続ステータスを見ると、接続を閉じる前に少しだけ接続を試みます。テスト中は、ファイアウォールやネットワーク セキュリティを設定していません。接続が切断される原因は何ですか?

4

0 に答える 0