0
我目前正在做的PHP的WebSocket送交
$room_array = array();
$room_array[0] = 'room-list';
$room_array['info'] = array('room_name' => $room['room_name'], 'owner' => $username['username'], 'room_description' => $room['room_desc']);
socket_send($this->current_socket, $this->encode(json_encode($room_array)), strlen($this->encode(json_encode($room_array))), 0);
以下内容,这是我的编码功能
private function encode($text)
{
$b1 = 0x80 | (0x1 & 0x0f);
$length = strlen($text);
if($length <= 125)
$header = pack('CC', $b1, $length);
elseif($length > 125 && $length < 65536)
$header = pack('CCS', $b1, 126, $length);
elseif($length >= 65536)
$header = pack('CCN', $b1, 127, $length);
return $header.$text;
}
而且我的客户在我处理像这样
message = JSON.parse(event.data);
console.log(message)
switch(message[0])
{
case 'error':
alert(message[1]);
break;
case 'login-success':
$('#user_information').html('<button class="user-name-button">Welcome <b>' + message.name + '</b></button><button class="user-coins-button"><b>' + message.coins + '</b> Coins</button>');
socket.send(JSON.stringify({'room_list': message.name}));
break;
case 'room-list':
alert(1)
break;
}
因此,使用此代码alert(1)正在执行,但问题是如果我尝试以下(添加更多元素到数组中)套接字不会工作。该消息将被发送,但不会到达客户端。不知道为什么
$room_array = array();
$room_array[0] = 'room-list';
$room_array['test'] = 'hello';
$room_array['info'] = array('room_name' => $room['room_name'], 'owner' => $username['username'], 'room_description' => $room['room_desc']);
socket_send($this->current_socket, $this->encode(json_encode($room_array)), strlen($this->encode(json_encode($room_array))), 0);
你的答案出现在低质量评价队列中。请扩展您的答案。你可以编辑它。 – 2015-02-05 16:54:31