【问题标题】:How to use session provider in Ratchet?如何在 Ratchet 中使用会话提供程序?
【发布时间】:2015-09-28 18:43:09
【问题描述】:

我正在使用 Ratchet 为我的应用程序创建 WebSocket,但我想使用会话提供程序来了解每个连接的连接是谁。这是http://socketo.me/docs/sessions 的文档,但是当我运行此代码时,出现“未定义内存缓存”的错误。

../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

【问题讨论】:

  • 你使用的是什么版本的 PHP?
  • 不是Memcached不是Memcache的类
  • php 版本为 5.6 @MarshallOfSound
  • 您的问题解决了吗?
  • 我猜这个问题是由缺少或错误的 php 扩展引起的。但是,请参阅下一个链接。 stackoverflow.com/q/30817560/4312466 可能重复。

标签: php session ratchet


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2014-08-06
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    相关资源
    最近更新 更多