1+ function appendMessage ( sender , message ) {
2+ const chat = document . getElementById ( "chat" ) ;
3+ const msg = document . createElement ( "div" ) ;
4+
5+ msg . classList . add ( "message" ) ;
6+ msg . classList . add ( sender === "user" ? "user-message" : "agent-message" ) ;
7+ msg . textContent = message ;
8+
9+ chat . appendChild ( msg ) ;
10+ chat . scrollTop = chat . scrollHeight ;
11+ }
12+
113async function startSignalR ( ) {
214 try {
3- // Stap 1: Vraag negotiate-informatie op van je Azure Function
415 const response = await fetch ( "https://chatproxy.azurewebsites.net/api/negotiate" , {
516 method : "POST"
617 } ) ;
@@ -11,40 +22,41 @@ async function startSignalR() {
1122
1223 const connectionInfo = await response . json ( ) ;
1324
14- // Logging: check de opgehaalde data
1525 console . log ( "🔗 Verbinding URL:" , connectionInfo . url ) ;
1626 console . log ( "🔑 Token start:" , connectionInfo . accessToken ?. slice ( 0 , 30 ) + "..." ) ;
1727
18- // Stap 2: Bouw de SignalR-verbinding
1928 const connection = new signalR . HubConnectionBuilder ( )
2029 . withUrl ( connectionInfo . url , {
21- accessTokenFactory : ( ) => connectionInfo . accessToken
30+ accessTokenFactory : ( ) => connectionInfo . accessToken ,
31+ skipNegotiation : true ,
32+ transport : signalR . HttpTransportType . WebSockets
2233 } )
2334 . configureLogging ( signalR . LogLevel . Information )
2435 . build ( ) ;
2536
26- // Stap 3: Event handler voor binnenkomende berichten
2737 connection . on ( "newMessage" , message => {
28- if ( typeof appendMessage === "function" ) {
29- appendMessage ( "assistant" , message ) ;
30- } else {
31- console . log ( "📩 Bericht ontvangen (fallback):" , message ) ;
32- }
38+ appendMessage ( "assistant" , message ) ;
3339 } ) ;
3440
35- // Stap 4: Start de verbinding
3641 await connection . start ( ) ;
3742 console . log ( "✅ Verbonden met SignalR hub" ) ;
3843
3944 } catch ( err ) {
4045 console . error ( "❌ SignalR fout:" , err ) ;
41- if ( typeof appendMessage === "function" ) {
42- appendMessage ( "assistant" , "⚠️ Verbinden met SignalR is mislukt." ) ;
43- } else {
44- console . warn ( "⚠️ Verbinding mislukt (fallback):" , err . message ) ;
45- }
46+ appendMessage ( "assistant" , "⚠️ Verbinden met SignalR is mislukt." ) ;
4647 }
4748}
4849
49- // Start de verbinding zodra het script geladen wordt
50+ document . getElementById ( "input-form" ) . addEventListener ( "submit" , async event => {
51+ event . preventDefault ( ) ;
52+ const inputField = document . getElementById ( "user-input" ) ;
53+ const message = inputField . value . trim ( ) ;
54+ if ( message === "" ) return ;
55+
56+ appendMessage ( "user" , message ) ;
57+ inputField . value = "" ;
58+
59+ // Hier kun je eventueel later een fetch toevoegen naar je backend
60+ } ) ;
61+
5062startSignalR ( ) ;
0 commit comments