Wie der Titel schon beschreibt bricht die Verbindung ständig ab.
Dies ist vom Intervall abhängig, mit welchem ich , bzw. aufrufe...
Etwas zu schnell, und der WebsocketState geht auf 4(CloseReceived), bzw 6(Aborted).
Ich kenne mich offensichtlich nicht wirklich mit Websockets aus, wollte aber fragen ob jemand eventuell den Grund dafür kennt.
Bei einem Kollegen funktioniert das in einer anderen Sprache ohne Probleme.
Hier der Connect:
Und der die Methode mit der ich in einem bestimmten Intervall SendAsync() und ReceiveAsync() aufrufen möchte (Fast identisch, aber der vollständigkeit halber hier drin):
Ich hoffe ich mache einfach nur irgendetwas falsch^^..
*Topic verschoben*
Dies ist vom Intervall abhängig, mit welchem ich , bzw. aufrufe...
Etwas zu schnell, und der WebsocketState geht auf 4(CloseReceived), bzw 6(Aborted).
Ich kenne mich offensichtlich nicht wirklich mit Websockets aus, wollte aber fragen ob jemand eventuell den Grund dafür kennt.
Bei einem Kollegen funktioniert das in einer anderen Sprache ohne Probleme.
Hier der Connect:
VB.NET-Quellcode
- Private Async Function Connect() As Task(Of Integer)
- ws = New System.Net.WebSockets.ClientWebSocket
- ServicePointManager.ServerCertificateValidationCallback = Function(s, c, h, d) True
- ws.Options.AddSubProtocol("graphql-transport-ws")
- Try
- Await ws.ConnectAsync(New Uri("wss://URL"), Nothing)
- If (ws.State = WebSockets.WebSocketState.Open) Then
- Await ws.SendAsync(New ArraySegment(Of Byte)(System.Text.Encoding.UTF8.GetBytes("{ConnectString}")), WebSockets.WebSocketMessageType.Text, True, Nothing)
- Dim bytes(4096) As Byte
- Dim answ = New ArraySegment(Of Byte)(bytes)
- Await ws.ReceiveAsync(answ, Nothing)
- RichTextBox1.Text += vbNewLine + "answer:" + System.Text.Encoding.UTF8.GetString(answ.Array)
- Return 0
- Else
- Return 1
- End If
- Catch ex As WebSockets.WebSocketException
- RichTextBox1.Invoke(Sub()
- RichTextBox1.Text += ex.Message
- End Sub)
- Return 1
- End Try
- End Function
Und der die Methode mit der ich in einem bestimmten Intervall SendAsync() und ReceiveAsync() aufrufen möchte (Fast identisch, aber der vollständigkeit halber hier drin):
VB.NET-Quellcode
- Private Async Function SendReceive() As Task
- Try
- If (ws.State = WebSockets.WebSocketState.Open) Then
- Await ws.SendAsync(New ArraySegment(Of Byte)(System.Text.Encoding.UTF8.GetBytes("{SendString}")), WebSockets.WebSocketMessageType.Text, True, Nothing)
- Dim bytes(4096) As Byte
- Dim answ = New ArraySegment(Of Byte)(bytes)
- Await ws.ReceiveAsync(answ, Nothing)
- RichTextBox1.Text += vbNewLine + "answer:" + System.Text.Encoding.UTF8.GetString(answ.Array)
- counter += 1
- Label2.Invoke(Sub()
- Label2.Text = CStr(counter)
- End Sub)
- ElseIf (ws.State = WebSockets.WebSocketState.CloseReceived) Then
- 'Await Connect()
- ElseIf (ws.State = WebSockets.WebSocketState.Aborted) Then
- 'Await Connect()
- End If
- Catch ex As WebSockets.WebSocketException
- RichTextBox1.Text = ex.InnerException.Message + vbNewLine + CStr(ws.State)
- End Try
- End Function
Ich hoffe ich mache einfach nur irgendetwas falsch^^..
*Topic verschoben*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()