VPS சேவையகத்தின் வரிசைப்படுத்தலுடன் .NET Core இல் டிஸ்கார்ட் போட்டை உருவாக்குதல்

VPS சேவையகத்தின் வரிசைப்படுத்தலுடன் .NET Core இல் டிஸ்கார்ட் போட்டை உருவாக்குதல்

வணக்கம் Khabrovites!

இன்று நீங்கள் .NET Core இல் C# ஐப் பயன்படுத்தி ஒரு போட்டை எவ்வாறு உருவாக்குவது மற்றும் தொலை சேவையகத்தில் அதை எவ்வாறு இயக்குவது என்பதைக் காட்டும் ஒரு கட்டுரையைப் பார்ப்பீர்கள்.

கட்டுரை ஒரு பின்னணி, ஒரு ஆயத்த நிலை, தர்க்கத்தை எழுதுதல் மற்றும் போட்டை தொலை சேவையகத்திற்கு மாற்றுதல் ஆகியவற்றைக் கொண்டிருக்கும்.

இந்த கட்டுரை பல தொடக்கக்காரர்களுக்கு உதவும் என்று நம்புகிறேன்.

முன்வரலாறு

இது அனைத்தும் நான் டிஸ்கார்ட் சர்வரில் கழித்த ஒரு தூக்கமில்லாத இலையுதிர் இரவில் தொடங்கியது. நான் சமீபத்தில் அவருடன் சேர்ந்ததால், அவரை மேலும் கீழும் படிக்க ஆரம்பித்தேன். "காலியிடங்கள்" என்ற உரைச் சேனலைக் கண்டறிந்த பிறகு, நான் ஆர்வமாகி, அதைத் திறந்து, எனக்கு விருப்பமில்லாத சலுகைகளில் கண்டறிந்தேன், இவை:

"புரோகிராமர் (போட் டெவலப்பர்)
தேவைகள்:

  • நிரலாக்க மொழிகளின் அறிவு;
  • சுய கற்றல் திறன்.

பரிந்துரைகள்:

  • மற்றவர்களின் குறியீட்டைப் புரிந்துகொள்ளும் திறன்;
  • டிஸ்கார்ட் செயல்பாடு பற்றிய அறிவு.

நோக்கங்கள்:

  • போட் வளர்ச்சி;
  • போட் ஆதரவு மற்றும் பராமரிப்பு.

உங்கள் நன்மை:

  • நீங்கள் விரும்பும் திட்டத்தை ஆதரிக்கவும் செல்வாக்கு செலுத்தவும் வாய்ப்பு;
  • ஒரு குழுவில் பணிபுரியும் அனுபவத்தைப் பெறுதல்;
  • இருக்கும் திறன்களை வெளிப்படுத்தவும் மேம்படுத்தவும் வாய்ப்பு.


இது எனக்கு உடனடியாக ஆர்வத்தை ஏற்படுத்தியது. ஆமாம், அவர்கள் இந்த வேலைக்கு பணம் செலுத்தவில்லை, ஆனால் அவர்கள் உங்களிடமிருந்து எந்தக் கடமைகளையும் கோரவில்லை, மேலும் இது போர்ட்ஃபோலியோவில் மிதமிஞ்சியதாக இருக்காது. எனவே, சர்வர் அட்மினுக்கு நான் கடிதம் எழுதினேன், மேலும் அவர் வேர்ல்ட் ஆஃப் டேங்க்ஸில் பிளேயரின் புள்ளிவிவரங்களைக் காண்பிக்கும் ஒரு போட்டை எழுதச் சொன்னார்.

தயாரிப்பு நிலை

VPS சேவையகத்தின் வரிசைப்படுத்தலுடன் .NET Core இல் டிஸ்கார்ட் போட்டை உருவாக்குதல்
டிஸ்க்ராட்
எங்கள் போட்டை எழுதத் தொடங்கும் முன், அதை டிஸ்கார்டிற்காக உருவாக்க வேண்டும். உனக்கு தேவை:

  1. டிஸ்கார்ட் கணக்கில் உள்நுழைக இணைப்பு
  2. "பயன்பாடுகள்" தாவலில், "புதிய பயன்பாடு" பொத்தானைக் கிளிக் செய்து போட் என்று பெயரிடவும்
  3. உங்கள் போட்டில் உள்நுழைந்து, "அமைப்புகள்" பட்டியலில் உள்ள "பாட்" தாவலைக் கண்டறிவதன் மூலம் போட் டோக்கனைப் பெறுங்கள்
  4. டோக்கனை எங்காவது சேமிக்கவும்

போர் விளையாட்டுகள்

மேலும், Wargaming APIக்கான அணுகலைப் பெற, Wargamingல் ஒரு பயன்பாட்டை உருவாக்க வேண்டும். இங்கே, எல்லாம் எளிது:

  1. உங்கள் Wargaming கணக்கில் உள்நுழைக இந்த இணைப்பில்
  2. நாங்கள் "எனது பயன்பாடுகள்" என்பதற்குச் சென்று, "புதிய பயன்பாட்டைச் சேர்" பொத்தானைக் கிளிக் செய்து, பயன்பாட்டின் பெயரைக் கொடுத்து அதன் வகையைத் தேர்ந்தெடுக்கிறோம்
  3. விண்ணப்ப ஐடியைச் சேமிக்கிறது

மென்பொருள்

தேர்வு சுதந்திரம் ஏற்கனவே உள்ளது. யாரோ ஒருவர் விஷுவல் ஸ்டுடியோவைப் பயன்படுத்துகிறார், யாரோ ரைடர், ஒருவர் பொதுவாக சக்தி வாய்ந்தவர், மேலும் Vim இல் குறியீட்டை எழுதுகிறார் (எல்லாவற்றிற்கும் மேலாக, உண்மையான புரோகிராமர்கள் விசைப்பலகையை மட்டுமே பயன்படுத்துகிறார்கள், இல்லையா?). இருப்பினும், டிஸ்கார்ட் API ஐ செயல்படுத்தாமல் இருக்க, நீங்கள் அதிகாரப்பூர்வமற்ற C# நூலகமான “DSharpPlus” ஐப் பயன்படுத்தலாம். நீங்கள் அதை NuGet இலிருந்து நிறுவலாம் அல்லது களஞ்சியத்திலிருந்து ஆதாரங்களை உருவாக்கலாம்.

NuGet இலிருந்து பயன்பாடுகளை எவ்வாறு நிறுவுவது என்பது தெரியாதவர்களுக்கு அல்லது மறந்துவிட்டவர்களுக்கு.விஷுவல் ஸ்டுடியோவுக்கான வழிமுறைகள்

  1. தாவலுக்குச் செல்லவும் திட்டம் - NuGet தொகுப்புகளை நிர்வகி;
  2. மதிப்பாய்வைக் கிளிக் செய்து, தேடல் புலத்தில் "DSharpPlus" ஐ உள்ளிடவும்;
  3. கட்டமைப்பைத் தேர்ந்தெடுத்து நிறுவவும்;
  4. லாபம்!

ஆயத்த நிலை முடிந்தது, நீங்கள் போட் எழுத தொடரலாம்.

தர்க்கம் எழுதுதல்

VPS சேவையகத்தின் வரிசைப்படுத்தலுடன் .NET Core இல் டிஸ்கார்ட் போட்டை உருவாக்குதல்

பயன்பாட்டின் முழு தர்க்கத்தையும் நாங்கள் கருத்தில் கொள்ள மாட்டோம், போட் மூலம் செய்திகளை எவ்வாறு இடைமறிப்பது மற்றும் Wargaming API உடன் எவ்வாறு வேலை செய்வது என்பதை மட்டுமே நான் காண்பிப்பேன்.

டிஸ்கார்ட் போட் உடன் பணிபுரிவது நிலையான ஒத்திசைவு பணி முதன்மை பணி (ஸ்ட்ரிங்[] ஆர்க்ஸ்) மூலம் நிகழ்கிறது;
இந்த செயல்பாட்டை அழைக்க, முதன்மையில் நீங்கள் பதிவு செய்ய வேண்டும்

MainTask(args).ConfigureAwait(false).GetAwaiter().GetResult();

அடுத்து, உங்கள் போட்டை துவக்க வேண்டும்:

discord = new DiscordClient(new DiscordConfiguration
{
    Token = token,
    TokenType = TokenType.Bot,
    UseInternalLogHandler = true,
    LogLevel = LogLevel.Debug
});

டோக்கன் என்பது உங்கள் போட்டின் டோக்கன் ஆகும்.
பின்னர், லாம்ப்டா மூலம், போட் இயக்க வேண்டிய தேவையான கட்டளைகளை எழுதுகிறோம்:

discord.MessageCreated += async e =>
{
    string message = e.Message.Content;
    if (message.StartsWith("&"))
    {
        await e.Message.RespondAsync(“Hello, ” + e.Author.Username);
    }
};

e.Author.Username என்பது பயனரின் புனைப்பெயரை எங்கே பெறுகிறது.

இந்த வழியில், & எனத் தொடங்கும் எந்த செய்தியையும் நீங்கள் அனுப்பும்போது, ​​​​போட் உங்களை வரவேற்கும்.

இந்த செயல்பாட்டின் முடிவில், நீங்கள் discord காத்திருப்பு என்று எழுத வேண்டும்.ConnectAsync(); மற்றும் Task.Delay(-1)க்காக காத்திருக்கவும்;

பிரதான நூலை எடுக்காமல் பின்னணியில் கட்டளைகளை இயக்க இது உங்களை அனுமதிக்கும்.

இப்போது நாம் Wargaming API உடன் சமாளிக்க வேண்டும். இங்கே எல்லாம் எளிது - CURL கோரிக்கைகளை எழுதவும், JSON சரத்தின் வடிவத்தில் பதிலைப் பெறவும், தேவையான தரவை அங்கிருந்து வெளியே இழுத்து, அவற்றில் கையாளுதல்களைச் செய்யவும்.

WargamingAPI உடன் பணிபுரிவதற்கான எடுத்துக்காட்டு

public Player FindPlayer(string searchNickname)
        {
            //https://api.worldoftanks.ru/wot/account/list/?application_id=y0ur_a@@_id_h3r3search=nickname
            urlRequest = resourceMan.GetString("url_find_player") + appID + "&search=" + searchNickname;
            Player player = null;
            string resultResponse = GetResponse(urlRequest);
            dynamic parsed = JsonConvert.DeserializeObject(resultResponse);

            string status = parsed.status;
            if (status == "ok")
            {
                int count = parsed.meta.count;
                if (count > 0)
                {
                    player = new Player
                    {
                        Nickname = parsed.data[0].nickname,
                        Id = parsed.data[0].account_id
                    };
                }
                else
                {
                    throw new PlayerNotFound("Игрок не найден");
                }
            }
            else
            {
                string error = parsed.error.message;
                if (error == "NOT_ENOUGH_SEARCH_LENGTH")
                {
                    throw new PlayerNotFound("Минимум три символа требуется");
                }
                else if (error == "INVALID_SEARCH")
                {
                    throw new PlayerNotFound("Неверный поиск");
                }
                else if (error == "SEARCH_NOT_SPECIFIED")
                {
                    throw new PlayerNotFound("Пустой никнейм");
                }
                else
                {
                    throw new Exception("Something went wrong.");
                }
            }

            return player;
        }

கவனம்! அனைத்து டோக்கன்கள் மற்றும் பயன்பாட்டு ஐடிகளை தெளிவான உரையில் சேமிக்க கண்டிப்பாக பரிந்துரைக்கப்படவில்லை! குறைந்தபட்சம், உலகளாவிய நெட்வொர்க்கில் நுழையும் போது டிஸ்கார்ட் அத்தகைய டோக்கன்களைத் தடைசெய்கிறது, மேலும் அதிகபட்சமாக, தாக்குபவர்களால் போட் பயன்படுத்தத் தொடங்குகிறது.

VPS - சர்வரில் வரிசைப்படுத்தவும்

VPS சேவையகத்தின் வரிசைப்படுத்தலுடன் .NET Core இல் டிஸ்கார்ட் போட்டை உருவாக்குதல்

போட் செய்து முடித்ததும், 24/7 தொடர்ந்து இயங்கும் சர்வரில் அதை ஹோஸ்ட் செய்ய வேண்டும். உங்கள் பயன்பாடு இயங்கும் போது, ​​போட் கூட இயங்குவதே இதற்குக் காரணம். நீங்கள் பயன்பாட்டை அணைத்தவுடன், உங்கள் போட் தூங்குகிறது.

இந்த உலகில் பல VPS சேவையகங்கள் Windows மற்றும் Linux இல் உள்ளன, இருப்பினும், பெரும்பாலான சந்தர்ப்பங்களில், Linux இல் ஹோஸ்ட் செய்வது மிகவும் மலிவானது.

டிஸ்கார்ட் சர்வரில், எனக்கு vscale.io அறிவுறுத்தப்பட்டது, உடனடியாக உபுண்டுவில் ஒரு மெய்நிகர் சேவையகத்தை உருவாக்கி, போட்டை பதிவேற்றினேன். இந்த தளம் எவ்வாறு செயல்படுகிறது என்பதை நான் விவரிக்க மாட்டேன், ஆனால் நேரடியாக போட் அமைப்புகளுக்குச் செல்வேன்.

முதலில், .NET Core இல் எழுதப்பட்ட எங்கள் bot ஐ இயக்கும் தேவையான மென்பொருளை நீங்கள் நிறுவ வேண்டும். அதை எப்படி செய்வது என்பது இங்கே விவரிக்கப்பட்டுள்ளது.

அடுத்து, நீங்கள் GitHub போன்ற Git சேவையில் bot ஐ பதிவேற்றி, VPS சேவையகத்திற்கு குளோன் செய்ய வேண்டும் அல்லது வேறு வழிகளில் உங்கள் bot ஐப் பதிவிறக்க வேண்டும். உங்களிடம் கன்சோல் மட்டுமே இருக்கும், GUI இல்லை என்பதை நினைவில் கொள்ளவும். அனைத்தும்.

உங்கள் போட்டை பதிவிறக்கம் செய்த பிறகு, நீங்கள் அதை இயக்க வேண்டும். இதற்கு, உங்களுக்குத் தேவை:

  • அனைத்து சார்புகளையும் மீட்டமை: டாட்நெட் மீட்டமை
  • பயன்பாட்டை உருவாக்கவும்: dotnet build name_project.sln -c வெளியீடு
  • கட்டப்பட்ட DLLக்குச் செல்லவும்;
  • dotnet name_of_file.dll

வாழ்த்துகள்! உங்கள் போட் இயங்குகிறது. இருப்பினும், போட், துரதிர்ஷ்டவசமாக, கன்சோலை ஆக்கிரமித்துள்ளது, மேலும் VPS சேவையகத்திலிருந்து வெளியேறுவது எளிதல்ல. மேலும், சர்வர் ரீஸ்டார்ட் செய்யப்பட்டால், நீங்கள் போட்டை புதிய வழியில் தொடங்க வேண்டும். சூழ்நிலையிலிருந்து இரண்டு வழிகள் உள்ளன. அவை அனைத்தும் சேவையக தொடக்கத்தில் துவக்கத்துடன் தொடர்புடையவை:

  • ரன் ஸ்கிரிப்டை /etc/init.d இல் சேர்க்கவும்
  • தொடக்கத்தில் இயங்கும் சேவையை உருவாக்கவும்.

அவற்றைப் பற்றி விரிவாகப் பேசுவதில் உள்ள புள்ளியை நான் காணவில்லை, எல்லாம் இணையத்தில் போதுமான விரிவாக விவரிக்கப்பட்டுள்ளது.

கண்டுபிடிப்புகள்

இந்தப் பணியை நான் ஏற்றுக்கொள்வதில் மகிழ்ச்சி அடைகிறேன். இது எனது முதல் போட் டெவலப்மெண்ட் அனுபவம், மேலும் சி # இல் புதிய அறிவைப் பெற்றதில் மகிழ்ச்சி அடைகிறேன், மேலும் லினக்ஸில் பணிபுரிந்தேன்.

டிஸ்கார்ட் சேவையகத்திற்கான இணைப்பு. வார்கேமிங் கேம்களை விளையாடுபவர்களுக்கு.
டிஸ்கார்ட் போட் அமைந்துள்ள களஞ்சியத்திற்கான இணைப்பு.
DSharpPlus களஞ்சியத்திற்கான இணைப்பு.
உங்கள் கவனத்திற்கு நன்றி!

ஆதாரம்: www.habr.com

கருத்தைச் சேர்