Multiple Continuous API Requests Issue
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- react, typescript
- Bereich
- frontend
Rechercherichtung
Beginnen Sie damit, das Verhalten mit dem bereitgestellten React-Abonnementcode zu reproduzieren, und untersuchen Sie, wie oft subscribeToBotMessages aufgerufen wird und wie activity$-Abonnements erstellt werden. Vergleichen Sie die resultierenden Netzwerkanfragen mit den activity$-Emissionen und bestätigen Sie, dass Anfragen nur gestellt werden, wenn neue Nachrichten empfangen werden, ohne doppelte Abonnements.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I have created a WebChat UI in React using the botframework-directlinejs package. While subscribing to messages, the application is continuously sending multiple API requests. This is leading to performance issues and unnecessary load on the server.
Expected Behavior:
The application should only send API requests when necessary, such as when new messages are received.
Actual Behavior:
The application is continuously sending multiple API requests, as shown in the attached screenshot.
my code :
const subscribeToBotMessages = useCallback(() => {
if (!directLine) return;
directLine.connectionStatus$.subscribe((status) => {
if (status === 2 && !conversationId) {
localStorage.setItem("conversationId", directLine.conversationId);
localStorage.setItem("token", directLine.token);
localStorage.setItem("watermark", directLine.watermark);
}
});
directLine.activity$
.filter(
(activity) =>
activity.type === "message" && activity.from.id !== "myUserId"
)
.subscribe((message) => {
const timestamp = new Date().toLocaleTimeString([], {
hour: "2-digit",
minute: "2-digit",
});
const newBotMessage = {
from: "bot",
botMessage: message,
timestamp,
liked: false,
disliked: false,
attachment:
message.attachments && message.attachments.length > 0
? message.attachments.length === 1 && message.attachments[0]
: null,
carousel:
message.attachments && message.attachments.length > 0
? message.attachments.length > 1 && message.attachments
: null,
};
setLoading(false);
if (message.text) {
try {
receiveAudioRef.current.play();
} catch (error) {
console.log("failed to play", error);
}
}
setMessages((prevMessages) => [...prevMessages, newBotMessage]);
});
directLine.activity$
.filter(
(activity) =>
activity.type === "message" && activity.from.id === "myUserId"
)
.subscribe((message) => {
const timestamp = new Date().toLocaleTimeString([], {
hour: "2-digit",
minute: "2-digit",
});
const newUserMessage = {
from: "user",
userMessage: message,
timestamp,
attachment: filePreview,
};
setMessages((prevMessages) => {
// Check if the user message already exists
if (
prevMessages.some(
(msg) => msg.timestamp === timestamp && msg.from === "user"
)
) {
return prevMessages;
}
return [...prevMessages, newUserMessage];
});
});
}, [directLine, conversationId]);
@billba
- Vorherrschende Sprache
- TypeScript
- Sterne
- 199
- Forks
- 133
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus microsoft/BotFramework-DirectLineJS
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
microsoft/BotFramework-DirectLineJS#432 · 1 Reaktion ·
-
bug
microsoft/BotFramework-DirectLineJS#421 · 3 Kommentare · 1 zugewiesene Person ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 35/100
microsoft/BotFramework-DirectLineJS#418 · 7 Kommentare · 7 Reaktionen ·
Alle Issues in microsoft/BotFramework-DirectLineJS
Ähnliche Issues
-
comp/dashboard P3 type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
NousResearch/hermes-agent#117722 ·
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 76/100
-
code-quality refactoring
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
langchain-ai/deepagents#6450 ·