gpt4 book ai didi

c#-4.0 - 如何使用 ClientWebSocket 类通过 Windows Phone 8 上的 Web 套接字发送/接收消息?

转载 作者:行者123 更新时间:2023-12-02 20:21:48 25 4
gpt4 key购买 nike

网络套接字是我的同事用 javascript 编写的。我成功连接了。首先,我必须使用测试帐户登录应用程序。我必须通过 json 发送电子邮件和密码。我已经使用 NuGet 安装了 Json.Net 数据包。

我在研究中发现的一些代码是这样的,但我不明白如何使用该段发送我的数据。

var buffer = new byte[1024];
var segment = new ArraySegment<byte>(buffer);
webSocket.SendAsync(segment, WebSocketMessageType.Text, true, CancellationToken.None);

当然,我可以使用一个对象

User user=new User();
user.Email="bla@bla.com";
user.Password="pass";
string json = JsonConvert.SerializeObject(user);

但是它没有任何用处,因为方法 SendAsync 只接受段上的字节类型。

我想要的只是发送该数据,如果登录成功,我应该收到有关用户的其他数据(Json 格式)。

顺便说一句,我对 Web 套接字还很陌生,我使用了 ASP.NET WEB API 2 中的 http 协议(protocol)。

最佳答案

我对 Windows Phone 8 不了解,但根据您粘贴的代码,它似乎与常规 .NET ClientWebSocket 类似,因此这里有一些示例:

public static Task SendString(ClientWebSocket ws, String data, CancellationToken cancellation)
{
var encoded = Encoding.UTF8.GetBytes(data);
var buffer = new ArraySegment<Byte>(encoded, 0, encoded.Length);
return ws.SendAsync(buffer, WebSocketMessageType.Text, true, cancellation);
}

public static async Task<String> ReadString(ClientWebSocket ws)
{
ArraySegment<Byte> buffer = new ArraySegment<byte>(new Byte[8192]);

WebSocketReceiveResult result = null;

using (var ms = new MemoryStream())
{
do
{
result = await ws.ReceiveAsync(buffer, CancellationToken.None);
ms.Write(buffer.Array, buffer.Offset, result.Count);
}
while (!result.EndOfMessage);

ms.Seek(0, SeekOrigin.Begin);

using (var reader = new StreamReader(ms, Encoding.UTF8))
return reader.ReadToEnd();
}
}

如果某些内容无法编译或存在于 WP8 中,只需找到等效的内容即可。

关于c#-4.0 - 如何使用 ClientWebSocket 类通过 Windows Phone 8 上的 Web 套接字发送/接收消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24450109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com