I try to create and app by Websocket. I did handshake good when i try to send any message to client client close the connection as WebSocket Error: Network Error 12152
I guess problem is encoding data. I use a script founded on Websocket new frame byte
but its not working good. i hope you can help me This is my code:
Dim rawData = System.Text.Encoding.UTF8.GetBytes("hello")
Dim frameCount = 0
Dim frame(10) As Byte
frame(0) = CByte(129)
If rawData.Length <= 125 Then
frame(1) = CByte(rawData.Length + 1)
frameCount = 2
ElseIf rawData.Length >= 126 AndAlso rawData.Length <= 65535 Then
frame(1) = CByte(126)
Dim len = CByte(rawData.Length)
frame(2) = CByte(((len >> 8) & CByte(255)))
frame(3) = CByte((len & CByte(255)))
frameCount = 4
Else
frame(1) = CByte(127)
Dim len = CByte(rawData.Length)
frame(2) = CByte(((len >> 56) & CByte(255)))
frame(3) = CByte(((len >> 48) & CByte(255)))
frame(4) = CByte(((len >> 40) & CByte(255)))
frame(5) = CByte(((len >> 32) & CByte(255)))
frame(6) = CByte(((len >> 24) & CByte(255)))
frame(7) = CByte(((len >> 16) & CByte(255)))
frame(8) = CByte(((len >> 8) & CByte(255)))
frame(9) = CByte((len & CByte(255)))
frameCount = 10
End If
Dim bLength = frameCount + rawData.Length
'Console.WriteLine(frameCount)
'Console.WriteLine(rawData.Length)
Dim reply(bLength) As Byte
Dim bLim = 0
For i = 0 To frameCount - 1
'Console.WriteLine(bLim)
reply(bLim) = frame(i)
bLim += 1
Next
For i = 0 To rawData.Length - 1
'Console.WriteLine(bLim)
reply(bLim) = rawData(i)
bLim += 1
Next
For i = 0 To reply.Length - 1
'Console.WriteLine("Byte: " & reply(i))
'Console.WriteLine("Char: " & CByte(reply(i)))
Next
Dim asd As String = Encoding.UTF8.GetString(reply)
Console.WriteLine(asd)
pv_streamwriter.WriteLine(asd)
pv_streamwriter.Flush()