Liv*_*osu 6 websocket c#-4.0 windows-phone-8
Web套接字是由我的同事用javascript编写的.我设法连接.首先,我必须使用测试帐户登录应用程序.我必须通过json发送电子邮件和密码.我使用NuGet安装了Json.Net数据包.
我在我的研究中发现的一些代码是这样的,但我不明白如何使用该段发送我的数据.
var buffer = new byte[1024];
var segment = new ArraySegment<byte>(buffer);
webSocket.SendAsync(segment, WebSocketMessageType.Text, true, CancellationToken.None);
Run Code Online (Sandbox Code Playgroud)
当然,我可以使用一个对象
User user=new User();
user.Email="bla@bla.com";
user.Password="pass";
string json = JsonConvert.SerializeObject(user);
Run Code Online (Sandbox Code Playgroud)
但它没有任何用处,因为SendAsync方法只接受段上的字节类型.
我想要的只是发送数据,如果登录成功,我应该收到有关用户的其他数据(采用Json格式).
作为旁注,我对Web套接字很新,我使用ASP.NET WEB API 2中的http协议.
vto*_*ola 12
我不知道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();
}
}
Run Code Online (Sandbox Code Playgroud)
如果WP8中没有编译或存在某些内容,只需查找等效内容即可.
| 归档时间: |
|
| 查看次数: |
7171 次 |
| 最近记录: |