0
4

1 回答 1

0

您可以在官方 Github 存储库中查看示例测试用法。

如果您看那里,您会发现e.Data应该对其进行解析。然后,您可以根据需要分配它,例如:

public string SetIsVisible(MessageEventArgs e, bool isVisible)
{
    JObject body = JObject.Parse(e.Data);
    body["item-visible"] = isVisible;
    return body.ToString();
}

...然后只需将返回的字符串发送到您的 websocket 中:

ws.Send(SetIsVisible(e, isVisible)); // isVisible is boolean you should assign

PS 如果您想使用静态类型的 DTO,只需生成一个(例如此处):

public partial class OBSSource
{
    [JsonProperty("item-id")]
    public long ItemId { get; set; }

    [JsonProperty("item-name")]
    public string ItemName { get; set; }

    [JsonProperty("item-visible")]
    public bool ItemVisible { get; set; }

    [JsonProperty("scene-name")]
    public string SceneName { get; set; }

    [JsonProperty("update-type")]
    public string UpdateType { get; set; }
}

... 接着:

public string SetIsVisible(MessageEventArgs e, bool isVisible)
{
    OBSSource obsSource = JsonConvert.DeserializeObject<OBSSource>(e.Data);
    obsSource.ItemVisible = isVisible;
    return JsonConvert.SerializeObject(obsSource);
}

...然后将其序列化到上面的 websocket 中。

于 2020-01-21T10:19:28.263 回答