richsage/rms-push-notifications-bundle
最新稳定版本:0.2.3
Composer 安装命令:
composer require richsage/rms-push-notifications-bundle
包简介
Push notifications/messages for mobile devices
README 文档
README
A bundle to allow sending of push notifications to mobile devices. Currently supports Android (C2DM, GCM), Blackberry and iOS devices.
Installation
To use this bundle in your Symfony2 project add the following to your composer.json:
{
"require": {
// ...
"richsage/rms-push-notifications-bundle": "dev-master"
}
}
and enable it in your kernel:
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new RMS\PushNotificationsBundle\RMSPushNotificationsBundle(),
);
}
NOTE: If you are still using Symfony 2.0, please use the symfony2.0 branch.
Configuration
Configuration options available are as follows. Note that the specific services will only be available if you provide configuration respectively for them.
rms_push_notifications:
android:
timeout: 5 # Seconds to wait for connection timeout, default is 5
c2dm:
username: <string_android_c2dm_username>
password: <string_android_c2dm_password>
source: <string_android_c2dm_source>
gcm:
api_key: <string_android_gcm_api_key> # This is titled "Server Key" when creating it
use_multi_curl: <boolean_android_gcm_use_multi_curl> # default is true
dry_run: <bool_use_gcm_dry_run>
ios:
timeout: 60 # Seconds to wait for connection timeout, default is 60
sandbox: <bool_use_apns_sandbox>
pem: <path_apns_certificate> # can be absolute or relative path (from app directory)
passphrase: <string_apns_certificate_passphrase>
mac:
timeout: 60 # Seconds to wait for connection timeout, default is 60
sandbox: <bool_use_apns_sandbox>
pem: <path_apns_certificate>
passphrase: <string_apns_certificate_passphrase>
blackberry:
timeout: 5 # Seconds to wait for connection timeout, default is 5
evaluation: <bool_bb_evaluation_mode>
app_id: <string_bb_app_id>
password: <string_bb_password>
windowsphone:
timeout: 5 # Seconds to wait for connection timeout, default is 5
NOTE: If you are using Windows, you may need to set the Android GCM use_multi_curl flag to false for GCM messages to be sent correctly.
Timeout defaults are the defaults from prior to the introduction of this configuration value.
Usage
A little example of how to push your first message to an iOS device, we'll assume that you've set up the configuration correctly:
use RMS\PushNotificationsBundle\Message\iOSMessage;
class PushDemoController extends Controller
{
public function pushAction()
{
$message = new iOSMessage();
$message->setMessage('Oh my! A push notification!');
$message->setDeviceIdentifier('test012fasdf482asdfd63f6d7bc6d4293aedd5fb448fe505eb4asdfef8595a7');
$this->container->get('rms_push_notifications')->send($message);
return new Response('Push notification send!');
}
}
The send method will detect the type of message so if you'll pass it an AndroidMessage it will automatically send it through the C2DM/GCM servers, and likewise for Mac and Blackberry.
Android messages
Since both C2DM and GCM are still available, the AndroidMessage class has a small flag on it to toggle which service to send it to. Use as follows:
use RMS\PushNotificationsBundle\Message\AndroidMessage;
$message = new AndroidMessage();
$message->setGCM(true);
to send as a GCM message rather than C2DM.
iOS Feedback service
The Apple Push Notification service also exposes a Feedback service where you can get information about failed push notifications - see here for further details.
This service is available within the bundle. The following code demonstrates how you can retrieve data from the service:
$feedbackService = $container->get("rms_push_notifications.ios.feedback");
$uuids = $feedbackService->getDeviceUUIDs();
Here, $uuids contains an array of Feedback objects, with timestamp, token length and the device UUID all populated.
Apple recommend you poll this service daily.
Windows Phone - Toast support
The bundle has beta support for Windows Phone, and supports the Toast notification. Use the WindowsphoneMessage message class to send accordingly.
Thanks
Firstly, thanks to all contributors to this bundle!
Secondly, thanks to JetBrains for their sponsorship of an open-source PhpStorm licence for this project.
richsage/rms-push-notifications-bundle 适用场景与选型建议
richsage/rms-push-notifications-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 932.08k 次下载、GitHub Stars 达 332, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「bundle」 「notification」 「push」 「gcm」 「c2dm」 「ios」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 richsage/rms-push-notifications-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 richsage/rms-push-notifications-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 richsage/rms-push-notifications-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This package makes it easy to send notifications via AfricasTalking with Laravel
2lenet/EasyAdminPlusBundle
The bundle for easy using json-rpc api on your project
Provide a way to secure accesses to all routes of an symfony application.
DMS Meetup API Bundle, enables Meetup API clients in services
Apple Push Notification & Feedback Provider
统计信息
- 总下载量: 932.08k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 337
- 点击次数: 38
- 依赖项目数: 4
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 未知