25 lines
782 B
C#
25 lines
782 B
C#
using System;
|
|
using System.Net.WebSockets;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Gameboard.ShogiUI.Sockets.Extensions
|
|
{
|
|
public static class WebSocketExtensions
|
|
{
|
|
public static async Task SendTextAsync(this WebSocket self, string message)
|
|
{
|
|
await self.SendAsync(Encoding.UTF8.GetBytes(message), WebSocketMessageType.Text, true, CancellationToken.None);
|
|
}
|
|
|
|
public static async Task<string> ReceiveTextAsync(this WebSocket self)
|
|
{
|
|
var buffer = new ArraySegment<byte>(new byte[2048]);
|
|
var receive = await self.ReceiveAsync(buffer, CancellationToken.None);
|
|
return Encoding.UTF8.GetString(buffer.Slice(0, receive.Count));
|
|
// TODO: Make this robust to multi-frame messages.
|
|
}
|
|
}
|
|
}
|