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
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值