说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

PubNub+Cloudinary:简单几步快速搭建实时图片分享应用

HTML文档下载 WORD文档下载 PDF文档下载
如今,人们希望通过Web、移动应用来进行实时性的交互式体验,而PubNub和Cloudinary的消息推送以及基于云端图片处理的功能就能满足人们的需求。那它们的工作流程是怎样的,具体又是怎么工作的呢?

如今,人们希望通过Web、移动应用来进行实时性的交互式体验,而PubNub和Cloudinary的消息推送以及基于云端图片处理的功能就能满足人们的需求。

PubNub是一个非常强大且易于使用的云服务,可进行实时的推送信息应用。而Cloudinary是一个基于云端的图片处理、管理、存储、美化于一体的平台,同时还集成了图片抓取功能,提供API接口。


它们的工作流程很简单:使用Cloudinary让用户在云端上传很多他们想上传的图片,然后通过PubNub发送消息,通知所有与其相关的用户。接收人可以通过Cloudinary来生成与他们特定设备比例相匹配的最初图片,有效的获得图片的最佳视觉体验。上述所有的一切都没有涉及到复杂的编码、调度配置或CPU负载。

具体是如何工作的呢?
 
首先,你可以从GitHub中浏览并复制所有的源代码。

1.首先在页面中嵌入文件输入字段。该字段包含一个在服务器端生成的签名,用来授权浏览器使用Cloudinary的jQuery插件安全上传图片到Cloudinary中。下面的Ruby代码嵌入了签名的输入字段。更多详细信息,请参阅这篇文章。

cl_image_upload_tag(:photo_id, :resource_type => :image,                    :transformation => incoming_transformation)

在云端存储图像之前,:transformation参数通过使用incoming_transformation来限制图像大小、并在图片上添加水印。

这是有关incoming_transformation的定义: 

incoming_transformation = [ { width: 1200, height: 1200, crop: 'limit'},                            { overlay: 'logos_watermark', width: 0.7,                               flags: 'relative', opacity: 40, gravity: 'north', y: 20 } ]

此外,自定义的输入字段和拖动区以及上传进度条都使用了CSS和jQuery(见源代码)来实现的。

 2.当用户单击Share按钮时,具有照片标识的Ajax请求被发送到服务器端,服务器安全地发布一条信息到我们的共享PubNub通道。

以下是服务器端Ruby代码接收标识符和其他的细节信息并发布到PubNub通道, 该通道使用的Ruby库:

preloaded = Cloudinary::PreloadedFile.new(params[:photo_id])         pubnub = Pubnub.new( :publish_key => PUBNUB_PUBLISH_KEY,                      :subscribe_key => PUBNUB_SUBSCRIBE_KEY )pubnub.publish({    :channel => PUBNUB_CHANNEL,    :message => {        cloudinary_photo_id: preloaded.identifier,        user: params[:user],        message: params[:message],        kind: params[:kind],        time: Time.now.utc.iso8601    },    :callback => lambda { |x| $stderr.puts("Shared #{preloaded.public_id}: #{x}") }})

3.客户端代码在浏览器中使用PubNub的Javascript库为新消息预订一个PubNub的通道

var pubnub = PUBNUB.init({ subscribe_key: PUBNUB_SUBSCRIBE_KEY});pubnub.subscribe({ channel : PUBNUB_CHANNEL,                   callback : show_message });

当接收到消息时,该消息中包含了照片上传到Cloudinary中的公共ID。以下是Javascript代码使用Cloudinary的jQuery插件,来显示一个动态转换、基于脸部检测通过CDN的照片缩略图。一旦单击图片,最初上传的图片(该图片含有水印)就会显示出来。

function show_message(message) {  var link = $('<a></a>').    attr('href', $.cloudinary.url(message.cloudinary_photo_id)).    append($.cloudinary.image(message.cloudinary_photo_id,                { width: 150, height: 100, crop: "fill",                 gravity: "face", radius: 20, effect: "sepia"});  $('.stream').prepend($('<li></li>').append(link));}

此外,Javascript代码可获取最近的5个消息,这些消息是在页面加载之前发布的。这是通过使用PubNub的History来是实现的。

pubnub.history({    channel  : PUBNUB_CHANNEL,    limit    : 5,    callback : function(history) { $.each(history, function() { show_message(this); })}});

文章来源:cloudinary.com

Action Bar示例代码 (一) ActionBar使用方法 - Android活动栏(二) Action Bar使用方法 - Android活动栏(一) DialogFragment类介绍 Android Fragment使用详解 Fragment对比Activity - Android碎片介绍 Android 3.0新增日历控件CalendarView Android JSON写入类 - JsonWriter Android JSON解析类 - JsonReader Android获取本机电话号码 ListView自动滚动方法 自定义Android菜单背景 Android OpenGL下截图代码 Android开发Java图书推荐 Android开发图书推荐 UiModeManager设置夜间模式和行车模式 Android 2.2新增的DeviceAdminInfo类 Android获取摄像头详细信息 Android流量统计TrafficStats类的使用 电子邮件解析android.net.MailTo类 扫描和获取OBB文件信息 Android加速感应器开发平衡球代码解析 StrictMode限制模式API加速你的应用 手势识别兼容Android 1.x和2.x的代码 NativeActivity类在NDK中管理Activity OBB文件和StorageManager类使用介绍 DownloadManager下载管理类2.3新增API介绍 Android平台上的11个感应器你都知道吗 Android 2.3中的java.io.File类新增功能 更轻松的获取APK文件安装时间 合格的程序员应该具备哪些知识和技能? 在报表中如何显示出来----共n页/第几页 急寻广州深圳两地图书城管理软件公司 用jdk写出的application里的汉字很难看,有没有解决的办法? 面向对象分析与设计 那位有<<java大学教程>>的光盘,可不可以把光盘上的附录部分发给我!(100分) 关于win2000中的odbc的问题 vfw 软件工程师和程序员有什么不同? 一方有难,八方支援,我有疑难,你能否来? 唉。 发现有人还在吃糠。。。。痛心ing.............. 为什么我连不到mysql? 有什么比做ghost更好的硬盘数据备份方法? 请教:在dataGrid 中如何根据行值的不同,设置不同的颜色 一般菜的问题,不知道你遇到过没有,请大家过来看一下 分析与设计 3D場景鋸齒消除問題 一方有难,八方支援,我有疑难,你能否来? 发布新软件,请帮助测试 一个白痴问题!哪个函数可以去除字符串中的空格? 在两台服务器上的数据库间创建触发器的注意事项? 有一好的想法,但途中这个问题搞不定 各位高手,请问用API怎样获得本机的网卡的IP地址 面向对象ooad 有没有类似deltree功能的函数啊? weblogic初级问题 小问题, 如何把个DBIMAGE里的图片复制到剪贴板里去?? 如何正确更新ADO的记录 分全给出,各位大侠看一看为什么动态库中的窗体调不出来:。。。。 更佳编程之路(转贴) 菜鸟问什么是水晶报表? 我的第一次发问? 集思广益整理一下有关类型转换的函数!(出力的都有分!!!不够再加!!) 有高分!有高分!有高分!有高分! 大家都用什么工具来做J2ME开发?调查一下!!! 急!sql server中的数据备份我在用程序操作,应如何写那(在deplhi中) msdn的提问~~~ datagrid的滚动条上下滚动的事件是什么阿? OOAD提示 SOFT-ICE的使用! 在C++Builder中怎么将相对于1980年1月1日0分0秒的秒计数换算成日期? 链接服务器:OLE DB提供程序'MSDAORA'报错,连接失败 用VB创建了一个SQL表并填数,时间长了就没了,怎么回事(在线等) VB写的ActiveX控件,CB6为什么不能用? 关于查询datatime类型字段的问题 如何实现非报表打印输出,例如打印小票单据,请问用什么语句可以直接输出到打印机?? 那位兄弟有软件分发方面的文档 vfp8 b2 女友生日,散分100之1 查詢問題!在線! 这几个东西经常看到,请大家给我讲一下。越详细越好! 这是什么植物?好像猪笼草. 万圣节几月几日几月几日? 已知一个梯形的上底是15厘米,下底是30厘米,两条腰分别是9厘米和12厘米,求面积?(请帮帮忙,) 猪笼草属于植物,理由是什么 上海黄浦区有好的高中数学补习班吗? 已知一次函数y=ax+4与y=bx-2的图像在x轴上交于同一点,则b/a的值为( )A.4 B.-2 C.-1/2 D.1/2 关于黄埔军校的介绍 2011上海黄浦区化学一模的有机28题咋做阿?(附题)如图! Address什么意思,怎么译? XXX回国后在黄埔军校任职?如何用英语超表达XXX returened to china and became a leader working for Huangpu Military Academy,这个表达对吗?错在哪儿? 急找化学补习班 上海化学补习班 要上海最好的化学补习班哦.易思?金榜?新王牌?.他们之间有什么不同啊,了解上海补习班的科普下. 一批电脑,经质检车间检测,合格的台数是不合格的6.5倍,求这批电脑的合格率 英语翻译翻译为英语(正尊)摘要:黄埔军校,是我国第一次国内大革命时期,由国共两党共同合作,在苏联的帮助下创办的一所军事政治学校.因其校址始设于广州黄埔长洲岛,故又通称为“黄 上海黄浦哪家补习班的补习效果好? 150字关于《哈利波特》的影评 最好是英文 简述黄埔军校的建立,特色人员,壮况, lp地址的数字是什么意思 address 什么意思? 放学回家的路上甲以1.2米/秒的速度向西步行,乙骑车以3米/秒的速度经甲的身边也向西行的过程中,甲相对乙的速度是多少米/秒,方向是? 请问上海新世界英语外教口语的课程设置是? 请问一下第十二题为什么address可以这样用? 物理加速度习题求解20、据新闻报道,我国空军技术人员在飞机零高度救生脱险方面的研究取得成功.由于飞机发生故障大多是在起飞和降落阶段,而此时的高度几乎为零.在这种情况下,飞行员脱 上海英孚英语 有外教口语班吗?上海英孚英语,上海英孚网络课程是外教上课吗? address啥意思 babysitter啥意思 数学?18.19过程 质量检查部门检查一批零件,合格的有199个,不合格的有1个,这批零件的合格率是多少? 核磁共振氢谱有2种类型氢原子的吸收峰是什么意思?具有该特征的c6h6o3的结构简式是什么? 为什么验证猪笼草分泌液中有蛋白酶时,用蛋白块而不是蛋白液 come and get your love什么意思 一次函数,不难 食虫植物:猪笼草好养吗?在广州养 英语翻译珠江黄埔大桥——华南第一桥第一种翻译:The Pearl River Huangpu Bridge,which is the greatest bridge in south China第二种翻译:Huangpu Bridge of Pearl River is the greatest bridge,which has the longest main-span in s Halloween是什么意思 节节高答案7下数学13页的答案 redbone-come and get your Halloween的意思 节节高上的题 上海位于黄埔江边英语怎么表达 Halloween什么意思 Love your neighbour,yet pull not down your fence请问这句话有错误么总感觉.是不是应该吧后半句改为yet do not oull down your fence`? 这题怎么解 halloween是什么意思啊 Down For Your Love 歌词 .已知两根粗细均匀的电阻丝R1=10Ω R2=50Ω 现在将两电阻串联到电压为6V的电源上,则1s内,电流通过R1做功为______ J,电流通过R1 R2做功之比为______; 若将两者并联到同一电源两端,则1s内电流通过R1 求函数f(x)=X^2-2ax+1在区间[0,2]上的最小值 Lay Down Your Love 歌词 将质量为100g的物体投入盛有100ml酒精的量筒中,物体静止后,酒精液面上升到200ml刻度线,则该物体在量筒的情况是 ( )A.物体沉在量筒底部B物体漂浮在酒精液面上C物体悬浮在酒精中D条件不足 抽检一批牛奶,合格件数与不合格件数的比是14:1,这批牛奶的合格率是多少? Writing down silently to your love 如图所示的滑轮组匀速提升物体A时拉力为250N,机械效率为60%,人的重力为600N,双脚跟地面的接触面积为0.04m³,1.物体A的重力多大?2.若改为物体B匀速提升时,对地面的压强2.5*10的四次方pa,则物 抽查一批零件,合格件数与不合格件数的比是4:1,这批零件的合格率是多少 I do not need your mouth on the love,I need a down-feelings. 万圣节是几月几日 生产一批产品,不合格的件数与合格件数的比是1:4,这批产品的合格率是? 隋朝是怎样灭亡的 万圣节到底是几月几日?是11月1日,还是10月31日? 一批零件经检验不合格的件数占合格件数的十五分之一,这批零件的合格率是多少 如图:已知MN//PQ,同旁内角的平分线AB、CD和AD、CD分别相交于点.(1)、猜想AC和BD间的关系是:(2)、试用理由说明你的猜想. 谁知道万圣节在几月几日 一批产品的合格率是80%,那么合格件数与不合格件数的最简整数比是( ).
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘