kijho / kijho-chat
Requires
- php: >=5.4
- doctrine/doctrine-bundle: ~1.4
- doctrine/orm: ^2.4.8
- gos/web-socket-bundle: ^1.6
- symfony/assetic-bundle: ~2.3
- symfony/swiftmailer-bundle: ~2.3
- symfony/symfony: ~2.8|^3.0
This package is auto-updated.
Last update: 2024-08-29 04:42:51 UTC
README
聊天插件
Symfony 2.8 和 3.x 的聊天插件
预览
管理面板截图:local.loc/app_dev.php/chat/admin 客户端面板截图:local.loc/app_dev.php/chat/client
安装
步骤 1:下载插件
打开命令行,进入您的项目目录,并执行以下命令以下载此插件的最新稳定版本
$ composer require kijho/kijho-chat dev-master
此命令需要您全局安装了 Composer,具体请参考 Composer 文档中的 安装章节。
步骤 2:启用插件
然后,通过将其添加到项目中 app/AppKernel.php
文件中注册的插件列表来启用插件
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), new Symfony\Bundle\AsseticBundle\AsseticBundle(), new Gos\Bundle\WebSocketBundle\GosWebSocketBundle(), //bundle websockets for chat new Gos\Bundle\PubSubRouterBundle\GosPubSubRouterBundle(), //bundle websockets for chat new Kijho\ChatBundle\ChatBundle(), ); // ... } // ... }
为了查看视图,该插件提供了一个实现。
将路由导入到您的 routing.yml
chat: resource: "@ChatBundle/Resources/config/routing.yml" prefix: /{_locale}/chat
您必须将 FrchoCrontaskBundle 添加到 assetic.bundle 配置中
assetic: debug: "%kernel.debug%" use_controller: false bundles: [ChatBundle] #java: /usr/bin/java filters: cssrewrite: ~ #closure:
启用区域设置
framework:
translator: { fallbacks: ["%locale%"] }
WebSocket 配置
gos_web_socket: shared_config: true server: port: 5555 #The port the socket server will listen on host: 127.0.0.1 #The host ip to bind to router: resources: - "@ChatBundle/Resources/config/routing/chat.yml"
更新数据库模式和资产
symfony 3.0 bin/console doctrine:schema:update --force bin/console assets:install bin/console assetic:dump symfony 2.8 app/console doctrine:schema:update --force app/console assets:install app/console assetic:dump
启动服务器
WebSocket 服务器端的安装现在已完成。您应该能够从 symfony 安装根目录运行此服务器。
php app/console gos:websocket:server
如果一切顺利,您将看到类似以下的内容
Starting Gos WebSocket
Launching Ratchet WS Server on: 127.0.0.1:5555
这意味着 WebSocket 服务器现在正在运行!
从这里开始,只有 WebSocket 服务器正在运行!这并不意味着您可以订阅、发布、调用。请按照下一步进行操作:)
生产部署
如何在生产环境中运行您的 WebSocket 服务器?
app/console gos:websocket:server --env=prod 或 bin/console gos:websocket:server --env=prod
使用 supervisord 和其他配置示例将会提供
对抗内存泄漏!
那么为什么我的内存总是增加?
在开发模式下这是正常的。(不要在这个环境中检测内存泄漏,永远不要)使用 --env=prod 选项追加您的命令。您是否正在使用 fingers_crossed 处理器与 monolog?如果是,请切换到流。这是 fingers_crossed 预期的行为。它将日志条目存储在内存中,直到发生 action_level 事件。此插件的依赖项可能存在一些问题:(但是,我无能为力,如果出现这种情况,请降级或冻结受影响的依赖项)这是您的责任:)深入您自己的代码。如何检测内存泄漏?
app/console gos:websocket:server --profile --env=prod 或 bin/console gos:websocket:server --profile --env=prod
并触发所有操作。
源代码
https://github.com/GeniusesOfSymfony/WebSocketBundle/blob/master/README.md