Example #1
0
            switch ($request->getType()) {
                case ProtocolCached_Request_RequestType::SET:
                    echo sprintf("# set operation: %d, %d\n", $request->getSet()->getKey(), strlen($request->getSet()->getValue()));
                    $store->set($request->getSet()->getKey(), $request->getSet()->getValue());
                    var_dump($store);
                    var_dump($request);
                    break;
                case ProtocolCached_Request_RequestType::GET:
                    $result = $store->get($request->getGet()->getKey());
                    break;
            }
        } catch (ProtocolBuffers\InvalidProtocoBufferException $e) {
            echo $e->getMessage();
        }
        if ($result) {
            $response = new ProtocolCached_Response();
            $response->setType(ProtocolCached_Response_ResponseType::GET);
            $payload = new ProtocolCached_GetResponse();
            $payload->setValue($result);
            $response->setGet($payload);
            uv_write($socket, $response->serializeToString(), function ($socket, $stat) {
                echo "# Connection closed\n";
                uv_close($socket);
            });
        } else {
            echo "# Connection closed\n";
            uv_close($socket);
        }
    });
});
$timer = uv_timer_init();
Example #2
0
$c = uv_tcp_init();
uv_tcp_connect6($c, uv_ip6_addr('::1', 9999), function ($client, $stat) {
    if ($stat == 0) {
        $request = new ProtocolCached_Request();
        $type = getRequestType($_SERVER['argv'][1]);
        $request->setType($type);
        if ($type == ProtocolCached_Request_RequestType::SET) {
            $set = new ProtocolCached_SetRequest();
            $set->setKey($_SERVER['argv'][2]);
            $set->setValue($_SERVER['argv'][3]);
            $request->setSet($set);
        } else {
            if ($type == ProtocolCached_Request_RequestType::GET) {
                $set = new ProtocolCached_GetRequest();
                $set->setKey($_SERVER['argv'][2]);
                $request->setGet($set);
            }
        }
        uv_write($client, $request->serializeToString(), function ($socket, $stat) use($type) {
            if ($type == ProtocolCached_Request_RequestType::GET) {
                uv_read_start($socket, function ($socket, $nread, $buffer) use($type) {
                    var_dump(ProtocolCached_Response::parseFromString($buffer));
                    uv_close($socket);
                });
            } else {
                uv_close($socket);
            }
        });
    }
});
uv_run();