我試圖找尋一些信息,但找不到任何。我正在使用最新版本:21.0.1180.83米。WebSocket Chrome接收數據問題
我有一個C++服務器我工作,握手後,我發送Chrome以下內容:「10000001000000100110100001101001」這應該只是「嗨」,是否正確?但由於某些原因,Chrome並沒有做任何事情。我的服務器正在正確發送數據 - 我在亂搞這些位,並有一個錯誤消息說:一個或多個保留位打開:reserved2 = 1,reserved3 = 1.所以,我知道chrome接收正確。
ws.onmessage = function (evt)
{
var received_msg = evt.data;
alert(received_msg);
};
據我所知,應該是正確的,除非我失去了一些東西......任何幫助將不勝感激。
編輯我解決我的問題,好像我沒有正確地把字節一起...
下面是一段代碼我一起斬來解決......(不恨)
string construct_data (string data) {
string return_value = "";
/* 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-------+-+-------------+-------------------------------+
|F|R|R|R| opcode|M| Payload len | Extended payload length |
|I|S|S|S| (4) |A| (7) | (16/64) |
|N|V|V|V| |S| | (if payload len==126/127) |
| |1|2|3| |K| | |
+-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
| Extended payload length continued, if payload len == 127 |
+ - - - - - - - - - - - - - - - +-------------------------------+
| |Masking-key, if MASK set to 1 |
+-------------------------------+-------------------------------+
| Masking-key (continued) | Payload Data |
+-------------------------------- - - - - - - - - - - - - - - - +
: Payload Data continued ... :
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Payload Data continued ... |
+---------------------------------------------------------------+*/
char unmasked = 129;
char size;
if (data.size() <= 125) {
size = data.size();
} else if (data.size() > 125 && data.size() <= 65535) {
size = 126;
} else if (data.size() > 65535) {
size = 127;
}
stringstream it_um;
stringstream it_s;
for (int i = 0; i < 1 ; i++)
it_um << unmasked;
for (int i = 0; i < 1; i++)
it_s << size;
std::string raw_unmask;
std::string raw_size;
raw_unmask = it_um.str();
raw_size = it_s.str();
string raw_data = raw_unmask + raw_size + data;
return_value.append(raw_data);
return return_value;
}
在發送消息後,是否發生onerror或onclose回調?你能發佈你的消息發送代碼嗎?握手代碼也可能是有用的(以防在握手結束時有額外的數據被Chrome解釋爲消息的開始)。使用wireshark檢查您是否真的發送了您期望的數據,這可能也很有趣。 – simonc
@simonc不能,一切都很好。生病檢查電線鯊魚。我很確定它與kanaka建議的一樣。 – User
@Ohmages:你能告訴我你的解決方案嗎?你是如何解決它的?我也面臨類似的問題。任何幫助將不勝感激。 –