Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Send larger messages than 126 bytes websockets in C#
- public void sendMessage(Stream stream, string message)
- {
- try
- {
- List<byte> lb = new List<byte>();
- string aux = message;
- bool flagStart = false;
- int size;
- while (message.Length > _maxLengthMessage)
- {
- lb = new List<byte>();
- // I cut the mesasge in smaller pieces to send
- message = aux.Substring(0, _maxLengthMessage);
- aux = aux.Substring(_maxLengthMessage);
- if (!flagStart)
- {
- // In doc of Websockets i sign this piece: not the end, text
- lb.Add(0x01);
- flagStart = !flagStart;
- }
- else
- {
- // In doc of Websockets i sign this piece: not the end, continuation
- lb.Add(0x00);
- }
- size = message.Length;
- lb.Add((byte)size);
- lb.AddRange(Encoding.UTF8.GetBytes(message));
- stream.Write(lb.ToArray(), 0, size + 2);
- }
- lb = new List<byte>();
- if (!flagStart)
- {
- // If is this the only message we mark with: end of message, text
- lb.Add(0x81);
- flagStart = !flagStart;
- }
- else
- {
- //else Is the end of the message but is the continuation frame
- lb.Add(0x80);
- }
- size = aux.Length;
- lb.Add((byte)size);
- lb.AddRange(Encoding.UTF8.GetBytes(aux));
- //lb.AddRange(Encoding.UTF8.GetBytes(i.ToString()));
- stream.Write(lb.ToArray(), 0, size+2);
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement