小编Dan*_*aNV的帖子

使用Thrift发送二进制数据的最佳方式

我有一个c ++结构,它存储如下字节:

struct RemoteData 
{
    /// some other fields here

    unsigned char* buf;
    int bufLen;     
};
Run Code Online (Sandbox Code Playgroud)

我需要通过thrift将这些数据发送到用c ++编写的远程服务.我找到了三种方法来将这个结构映射到thrift idl:

  1. 使用这样的容器类型:

    struct RemoteData 
    {
        1: list<BYTE> buf,
        ...
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用binary类型:

    struct RemoteData 
    {
        1: binary buf,
        ...
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. string类型存储数据:

    struct RemoteData 
    {
        1: string buf,
        ...
    }
    
    Run Code Online (Sandbox Code Playgroud)

什么是最好的方法?

thrift

11
推荐指数
1
解决办法
1万
查看次数

如何使用 Puppeteer 向 WebSocket 发送数据

我使用 puppeteer-sharp 来转储通过 websockets 按页面接收和发送的数据。C# 转储数据的代码:

async Task Dump()
{
   var client = await _browser.Page.Target.CreateCDPSessionAsync();
   await client.SendAsync("Network.enable");
   client.MessageReceived += OnChromeDevProtocolMessage;
}

void OnChromeDevProtocolMessage(object sender, MessageEventArgs eventArgs)
{
    if (eventArgs.MessageID == "Network.webSocketCreated")
    {
        Logger.Trace($"Network.webSocketCreated: {eventArgs.MessageData}");
    }
    else if (eventArgs.MessageID == "Network.webSocketFrameSent")
    {
        Logger.Trace($"Network.webSocketFrameSent: {eventArgs.MessageData}");
    }
    else if (eventArgs.MessageID == "Network.webSocketFrameReceived")
    {        
        var cdpMessage = JsonConvert.DeserializeObject<CdpMessage>(eventArgs.MessageData.ToString());
        ProcessMessage(cdpMessage);
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 puppeteer 或直接使用 Chrome 开发协议消息将数据发送到 websocket?

编辑: 或者是否有可能以某种方式获取 WebSocket 实例(或句柄)以在 JavaScript 代码中使用它来使用 EvaluateFunctionAsync 发送数据?

websocket puppeteer puppeteer-sharp

4
推荐指数
1
解决办法
3342
查看次数

如何在XAML中显示工具提示?

我正在使用WPF MVVM编写应用程序.我有一个带有属性IsFolderSelected的视图模型,如下所示:

public class SelectFolderViewModel : ViewModelBase
{        
    public bool IsFolderSelected
    {
        get
        {
            return _isFolderSelected;
        }

        set
        {
            if (_isFolderSelected == value)
            {
                return;
            }

            _isFolderSelected = value;
            RaisePropertyChanged(IsFolderSelectedPropertyName);
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

我在XAML中有一个TextBox元素:

        <TextBox 
             Text="{Binding Path=FolderPath}"
             ToolTip="Please select folder"/>
Run Code Online (Sandbox Code Playgroud)

当属性IsFolderSlected == false时,如何从TextBox强制显示工具提示?

wpf xaml tooltip

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

puppeteer ×1

puppeteer-sharp ×1

thrift ×1

tooltip ×1

websocket ×1

wpf ×1

xaml ×1