Дублирование соединения и сообщений [дубликат]C#

Место общения программистов C#
Ответить
Anonymous
 Дублирование соединения и сообщений [дубликат]

Сообщение Anonymous »

Подключение к SignalR дублируется во внешнем интерфейсе. Поскольку это всего лишь API, я не могу отслеживать его на внутреннем сервере, но считаю, что ошибка находится на внешнем интерфейсе. Ошибка заключается в том, что соединение просто дублирует само себя, пока соединение дублирует само себя, сообщение, отправленное пользователем, также будет дублировать само себя.

Код: Выделить всё

namespace ChatInRealTime.Service
{
public class HubSignal : Hub
{
public async Task SendMessage(MessageModel message)
{
await Clients.All.ReceivedMessage(message);
}
}
}

Код: Выделить всё

function App() {
const [connection, setConnection] = useState < HubConnection | null > (null);
const [messages, setMessages] = useState([]);

useEffect(() => {
async function connectionSignal() {
try {
const connection = new HubConnectionBuilder()
.withUrl("https://localhost:7198/hub")
.configureLogging(LogLevel.Information)
.build();

connection.on("ReceivedMessage", (message) => {
console.log('Message received: ', message);
setMessages((messages) => [...messages, message]);
});

await connection.start();

setConnection(connection);

console.log("Conexão concluída com sucesso", connection);

} catch (error) {
console.log(error);
}
}
connectionSignal();
}, [])
}
Я уже пытался изменить UseEffect несколькими возможными способами. Я пробовал без UseEffect, просто объявляя функцию, которая будет вызывать сама себя, как только страница загружается. Попробуйте прямо сейчас.

Подробнее здесь: https://stackoverflow.com/questions/793 ... uplicating
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»