Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка CS106 "ClientOptions" не содержит определения "Proxy", и не удалось найти доступный метод расширения "Pro......

Глеб Гарусин Ученик (7), на голосовании 2 месяца назад
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) CS1061 "ClientOptions" не содержит определения "Proxy", и не удалось найти доступный метод расширения "Proxy", принимающий тип "ClientOptions" в качестве первого аргумента
 using System; 
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Windows;
using TwitchLib.Client;
using TwitchLib.Client.Events;
using TwitchLib.Client.Models;
using TwitchLib.Communication.Clients;
using TwitchLib.Communication.Models;

namespace WpfAppGlebItog
{
internal class Bot
{
private ConnectionCredentials creds;
private TwitchClient client;
public string ChannelName { get; private set; }
public string BotName { get; private set; }
private string BotToken;
private IWebProxy Proxy;

internal Bot(string channelName, string botName, string botToken, IWebProxy proxy = null)
{
ChannelName = channelName;
BotName = botName;
BotToken = botToken;
Proxy = proxy;
creds = new ConnectionCredentials(BotName, BotToken);

var clientOptions = new ClientOptions
{
MessagesAllowedInPeriod = 750,
ThrottlingPeriod = TimeSpan.FromSeconds(30)
};

if (Proxy != null)
{
clientOptions.Proxy = Proxy;
}

var customClient = new WebSocketClient(clientOptions);
client = new TwitchClient(customClient);
}

internal void Connect(bool isLogging)
{
client.Initialize(creds, ChannelName);
if (isLogging)
client.OnLog += Client_OnLog;
client.OnConnected += Client_OnConnected;
client.OnMessageSent += Client_OnMessageSent;
client.OnMessageReceived += Client_OnMessageReceived; // Логируем входящие сообщения
client.OnConnectionError += Client_OnConnectionError; // Логируем ошибки подключения
client.Connect();
}

private void Client_OnLog(object sender, OnLogArgs e)
{
Console.WriteLine(e.Data);
}

private void Client_OnConnected(object sender, OnConnectedArgs e)
{
Console.WriteLine($"Connected to {e.AutoJoinChannel}");
}

private void Client_OnMessageSent(object sender, OnMessageSentArgs e)
{
Console.WriteLine($"Message sent to channel {e.SentMessage.Channel}: {e.SentMessage.Message}");
}

private void Client_OnMessageReceived(object sender, OnMessageReceivedArgs e)
{
Console.WriteLine($"Message received in channel {e.ChatMessage.Channel} from {e.ChatMessage.Username}: {e.ChatMessage.Message}");
}

private void Client_OnConnectionError(object sender, OnConnectionErrorArgs e)
{
Console.WriteLine($"Connection error: {e.Error.Message}");
}

internal void Disconnect()
{
client.Disconnect();
}

internal void SendMessage(string message)
{
if (client.IsConnected && !string.IsNullOrEmpty(ChannelName))
{
Console.WriteLine($"Sending message: {message} to channel: {ChannelName}");
client.SendMessage(ChannelName, message);
}
else
{
Console.WriteLine("Client is not connected or channel name is empty.");
}
}
}
}
Голосование за лучший ответ
Sergio 2.1 Оракул (67281) 3 месяца назад
Прокси-сервер обычно настраивается на уровне WebSocketClient.
 var clientOptions = new ClientOptions 
{
MessagesAllowedInPeriod = 750,
ThrottlingPeriod = TimeSpan.FromSeconds(30)
};

WebSocketClient customClient;
if (Proxy != null)
{
customClient = new WebSocketClient(clientOptions, proxy: Proxy);
}
else
{
customClient = new WebSocketClient(clientOptions);
}
client = new TwitchClient(customClient);
Глеб ГарусинУченик (7) 3 месяца назад
 Серьезность	Код	Описание	Проект	Файл	Строка	Состояние подавления 
Ошибка (активно) CS1739 Наиболее подходящий перегруженный метод для "WebSocketClient" не имеет параметр с именем "proxy". WpfAppGlebItog 40


internal Bot(string channelName, string botName, string botToken, IWebProxy proxy = null)
{
ChannelName = channelName;
BotName = botName;
BotToken = botToken;
Proxy = proxy;
creds = new ConnectionCredentials(BotName, BotToken);

var clientOptions = new ClientOptions
{
MessagesAllowedInPeriod = 750,
ThrottlingPeriod = TimeSpan.FromSeconds(30)
};

WebSocketClient customClient;
if (Proxy != null)
{
customClient = new WebSocketClient(clientOptions, proxy: Proxy);
Похожие вопросы