websocket 发送json

Module Module1

    Sub Main()
        Try
            Dim m_IMSCOMAddress As String = "ws://" + "99.99.99.99" + ":9001"
            Dim m_ws = New RemoteCmdHelper(m_IMSCOMAddress)
            m_ws.m_message = "{""message"": ""stats""}"
            m_ws.Open()
            Threading.Thread.Sleep(500)
            m_ws.Close()

            Dim str = m_ws.m_results
            '{"message":"stats","cpu":{"global":3.008392923190502},"time":117.666,"instance_id":"5d515109",
            '"cells":{"1":{"dl_bitrate":0,"ul_bitrate":0,"dl_tx":0,"ul_tx":0,"dl_retx":0,"ul_retx":0,"dl_use_min":0,
            '"dl_use_max":0.05999999865889549,"dl_use_avg":0.0031247502849712459,"ul_use_min":0.03999999910593033,
            '"ul_use_max":0.09999999403953552,"ul_use_avg":0.04600015194588735,
            '"dl_sched_users_min":0,"dl_sched_users_max":0,"dl_sched_users_avg":0,
            '"ul_sched_users_min":0,"ul_sched_users_max":0,"ul_sched_users_avg":0,
            '"ue_count_min":0,"ue_count_max":0,"ue_count_avg":0,"erab_count_min":0,
            '"erab_count_max":0,"erab_count_avg":0,"dl_gbr_use_min":0,"dl_gbr_use_max":0,
            '"dl_gbr_use_avg":0,"ul_gbr_use_min":0,"ul_gbr_use_max":0,"ul_gbr_use_avg":0}},
            '"rf_ports":{"0":{"rxtx_delay":{"min":2.597916666666667,"max":3.8399305555555556,"avg":3.3078703627033845,
            '"sd":0.2691544629708594}}},"counters":{"messages":{},"errors":{}}}
            Return
        Catch ex As Exception
            'WriteLog("CheckeNBStatus:Failed Exception" + ex.Message)
            Return
        End Try
    End Sub

End Module
/***************************************************************************************/

Imports System
Imports System.Text
Imports System.Threading
Imports System.Threading.Tasks
Imports WebSocket4Net
Imports SuperSocket
Imports SuperSocket.ClientEngine
Imports System.IO

Public Class RemoteCmdHelper
    Implements IDisposable

    Private ReceiveChunkSize As Integer = 1024
    Private SendChunkSize As Integer = 1024
    Private webSocketClient As WebSocket
    Private uri As Uri
    Private cancellationTokenSource As CancellationTokenSource = New CancellationTokenSource()
    Private cancellationToken As CancellationToken
    Public m_message As String
    Public m_results As String = ""

    Public Sub New(ByVal remoteuri As String)
        Try
            webSocketClient = New WebSocket(remoteuri)
            'AddHandler webSocketClient.Error, Sub(s, e) socketError(s, e)
            AddHandler webSocketClient.Opened, Sub(s, e) socketOpened(s, e)
            AddHandler webSocketClient.Closed, Sub(s, e) socketClosed(s, e)
            AddHandler webSocketClient.MessageReceived, Sub(s, e) socketMessage(s, e)
            AddHandler webSocketClient.DataReceived, Sub(s, e) socketDataReceived(s, e)
            'webSocketClient.AllowUnstrustedCertificate = True
        Catch ex As Exception
            'WriteLog("Fail to initialize the connect for the cmd to " + remoteuri + " Error:" + ex.Message)
        End Try
    End Sub

    Private disposedValue As Boolean ' To detect redundant calls
    Protected Overridable Sub Dispose(disposing As Boolean)
        If Not disposedValue Then
            If disposing Then
                If Not IsNothing(webSocketClient) Then
                    webSocketClient.Dispose()
                End If
            End If

            Finalize()
        End If
        disposedValue = True
    End Sub

    ' TODO: override Finalize() only if Dispose(disposing As Boolean) above has code to free unmanaged resources.
    'Protected Overrides Sub Finalize()
    '    ' Do not change this code.  Put cleanup code in Dispose(disposing As Boolean) above.
    '    Dispose(False)
    '    MyBase.Finalize()
    'End Sub

    ' This code added by Visual Basic to correctly implement the disposable pattern.
    Public Sub Dispose() Implements IDisposable.Dispose
        ' Do not change this code.  Put cleanup code in Dispose(disposing As Boolean) above.
        Dispose(True)
        ' TODO: uncomment the following line if Finalize() is overridden above.
        GC.SuppressFinalize(Me)
    End Sub


    Sub socketOpened(s As Object, e As EventArgs)
        'webSocketClient.Send("{'message':'ue_get'}")
        m_results = ""
        webSocketClient.Send(m_message)
    End Sub

    Sub socketClosed(s As Object, e As EventArgs)
        'WriteLog("Closed")
    End Sub

    Sub socketError(s As Object, e As IO.ErrorEventArgs)
        'WriteLog(e.Exception.ToString)
    End Sub

    Sub socketMessage(s As Object, e As WebSocket4Net.MessageReceivedEventArgs)
        m_results = e.Message
        'If m_nBaseParam1 = 724 Then
        '    WriteLog("socketMessage:" + m_results)
        '    WriteLog(e.Message)
        'End If

    End Sub

    Sub socketDataReceived(ss As Object, e As WebSocket4Net.DataReceivedEventArgs)
        Dim s As New System.Text.StringBuilder
        s.Append(System.Text.ASCIIEncoding.ASCII.GetString(e.Data, 0, e.Data.Length()))
        Dim Str = s.ToString()
        m_results = Str
        'If m_nBaseParam1 = 724 Then
        'WriteLog("socketDataReceived:" + m_results)
        'WriteLog(Str)
        'End If

    End Sub


    Public Function Open() As Boolean
        Try
            m_results = ""
            If webSocketClient.State = WebSocketState.None Or webSocketClient.State = WebSocketState.Closed Then
                webSocketClient.Open()
            End If

            Return True
        Catch ex As Exception
            'WriteLog(ex.Message)
            Return False
        End Try
    End Function

    Public Function Close() As Boolean
        Try
            If webSocketClient.State = WebSocketState.Open Then
                webSocketClient.Close()
            End If

            Return True
        Catch ex As Exception
            'WriteLog(ex.Message)
            Return False
        End Try
    End Function

    Public Function Send(ByVal data As String) As Boolean
        Try
            webSocketClient.Send(data)
            Return True
        Catch ex As Exception
            'WriteLog(ex.Message)
            Return False
        End Try
    End Function

End Class
 

你可能感兴趣的:(VB)