3
有人知道客戶端發送給websocket服務器的消息的編碼類型是什麼?當客戶端向websocket服務器發送消息時,什麼是編碼類型?
,我是學這個網站
http://blogs.claritycon.com/blog/2012/01/18/websockets-with-rfc-6455/
,並從這個網站教我,下面的代碼解碼在服務器端從客戶得到的消息!
public string HybiDecode(byte[] data)
{
byte firstByte = data[0];
byte secondByte = data[1];
int opcode = firstByte & 0x0F;
bool isMasked = ((firstByte & 128) == 128);
int payloadLength = secondByte & 0x7F;
if (!isMasked) { return null; } // not masked
if (opcode != 1) { return null; } // not text
List<int> mask = new List<int>();
for (int i = 2; i < 6; i++)
{
mask.Add(data[i]);
}
int payloadOffset = 6;
int dataLength = payloadLength + payloadOffset;
List<int> unmaskedPayload = new List<int>();
for (int i = payloadOffset; i < dataLength; i++)
{
int j = i - payloadOffset;
unmaskedPayload.Add(data[i]^mask[j % 4]);
}
return ToAscii(unmaskedPayload.Select(e => (byte)e).ToArray());
}
public string ToAscii(byte[] data)
{
System.Text.ASCIIEncoding decoder = new System.Text.ASCIIEncoding();
return decoder.GetString(data, 0, data.Length);
}
,但現在我在C語言正在學習,所以我必須toascii將()轉換爲C語言! 但是...從什麼?從unicode到ASCII或從utf-8到ASCII? 如果你知道這個,你能告訴我嗎?
我使用的是Ubuntu linux,而且我知道這是utf-8系統。 你意味着我不需要任何轉換來查看服務器端的數據? p.s:我有點名氣可以提高箭頭! ^^今天謝謝你的答覆! – nathan 2012-03-18 15:23:50
我完成了!謝謝!! – nathan 2012-03-19 02:10:06