如何在Ratchet中使用会话提供程序?

时间:2015-09-28 18:43:10

标签: php session ratchet

我正在使用Ratchet为我的应用程序创建WebSocket,但我想使用会话提供程序来了解每个连接的连接。这是一个文档http://socketo.me/docs/sessions但是当我运行这段代码时,我得到错误" memcache没有定义"。

../bin/server.php

PHP:

<?php
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use Ratchet\Server\Ioserver;
use MyApp\Game;
use Ratchet\Session\SessionProvider;
use Symfony\Component\HttpFoundation\Session\Storage\Handler;

require_once dirname(__DIR__).'/vendor/autoload.php';

$ip = "127.0.0.1";

$memcache = new Memcache;
$memcache->connect($ip, 11211);

$session = new SessionProvider(
    new Game,
    new Handler\MemcacheSessionHandler($memcache)
);

$server = IoServer::factory(
    new HttpServer(
            new WsServer(
                $session//new Game()
            )
        ),
        8585
    );

$server->run();
?>

错误:

Fatal error: Class 'Memcache' not found in C:\xampp\htdocs\app\bin\server
.php on line 13

1 个答案:

答案 0 :(得分:1)

  1. 执行php -i命令并检查它是否显示Memcache扩展名(并且不要将其与Memcached扩展名混淆 - 虽然它们的名称相似但它们是不同的。
  2. 如果上一个命令的输出中没有Memcache扩展,则在PHP安装中安装Memcache扩展。怎么做 - 取决于您的PHP安装和您所在的系统。但通常可以通过PEAR实用程序安装PHP扩展,如下所示:pecl install Memcache