在进行Websocket连接后向浏览器发送8个字节

时间:2012-09-15 16:10:49

标签: javascript c++ sockets ubuntu websocket

我已经开始在C ++中编写一个小WebSocket Server。我正在使用Ubuntu。服务器侦听进入连接。建立连接后,浏览器会向服务器发送一个WebSocket标头,包括与Sec-WebSocket-KeySHA-1共享的base64 encoded,然后以Sec-WebSocket-Accept的形式发送回浏览器与标题的其余部分。这导致浏览器和我的服务器之间的WebSocket连接打开。

我已阅读有关数据框架的规范部分,并尝试将数据从我的服务器发送到浏览器。以下是我的代码:

cout << "sending data..." << endl;

uint8_t to_send[8];

to_send[0] = (uint8_t)129;  // 10000001
to_send[1] = (uint8_t)6;    // 00000110
to_send[2] = 'h';
to_send[3] = 'e';
to_send[4] = 'l';
to_send[5] = 'l';
to_send[6] = 'o';
to_send[7] = '\0';          // 00000000

int bytesSent = send(i, &to_send, 8, 0);
cout << "bytes sent: " << bytesSent << endl;

'fin'位,三个保留位和文本帧的操作码'0001'构成第一个字节。第二个字节是文本im发送的长度 - 字符串“hello”后跟一个空转义字符。我的调试JavaScript代码是:

ws.onopen = function()
{
    alert("WebSocket connection open");
}

ws.onmessage = function(event)
{
    alert("Data has been received");
}

在我的服务器发送8个字节之后,我希望来自浏览器的警报说已收到数据,但事实并非如此。我已经测试了chrome和firefox。

有人可以看到我哪里出错吗?

0 个答案:

没有答案