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

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

Node.js 打造实时多人游戏框架 深圳微信开发者大会购票企业特征分析 上门汽车服务“e保养”完成A轮500万美元融资 Docker之父Solomon Hykes谈项目开发的初衷和挑战 浪潮是如何实现单日5000台x86服务器交付互联网的? Bootstrap 3.3.0发布 版本4不再支持IE8 漏洞预警:FTP曝严重远程执行漏洞 影响多个版本Unix 【简讯】W3C小组宣布HTML5标准制定完成 AMD发布GPUPerfAPI 2.14,GPU性能检测更Easy! 开放能力升级——微信公众号登陆授权开启公测! 百度最“智能”的新型推荐技术——智能因子分解机 消灭Bug!18款最佳的问题跟踪管理应用程序 Google Analytics为什么会这么快 【MDCC 2014】Xamarin深入体验营——开发实战大揭秘 【MDCC 2014】电信技术专场:运营商与开发者如何合作共赢 【MDCC 2014】高德LBS大赛闭幕式暨颁奖典礼:下一个50亿应用花落谁家? MDCC 2014移动开发者大会开幕:全生态系统齐聚 开发者成主角 蓝港互动有限公司董事长&amp;amp;首席执行官王峰:移动互联网泛娱乐化趋势 多盟联合创始人&amp;amp;总裁张鹤:多盟DSPAN助力开发者高效变现 创新工场联合创始人汪华:移动互联网时代的跃迁式增长 阿里巴巴集团UC移动事业群总裁俞永福:AMAP Inside——更专业、更开放 《程序员+》移动应用上线 启动“2014 MDCC十大人气应用/产品评选活动” 微软开发体验与平台合作事业部大中华区DX部门总经理Srikanth Raju:基于云的跨平台开发 Facebook平台工程合作部亚太区总经理张博:通过Facebook构建下一代移动应用 Vungle工程副总裁Wayne Chan:移动视频广告的未来 友盟副总裁焦岳:2014移动互联网行业趋势&amp;amp;大数据的行业价值与运营支持 联发科技创意实验室副总裁Marc Naddell:以小博大的可穿戴方案 用友软件股份有限公司高级副总裁谢志华:企业互联网移动化触手可及 【MDCC 2014】英雄会晚宴——厉兵秣马,再上征程 移动开发技术与平台峰会(上):流量优化、数据管理、IM、LBS与跨平台开发 【推广、盈利与投资论坛】探寻推广与盈利新趋势 struts多行提交怎么做!!!!!!!!!!! 在16M的flash中做了一个linux系统后,如何给它加一个rsh的服务器?(现在只有1M空间了) 请问各位作过水晶报表的,我是用报表专家的提示连SQLSERVER2000数据库,但为何运行时提示:无法登陆!!有那位有过解决的经验??很急, 有人知道这是为什么吗? 用ASP可不可以显示数据库的表的结构啊? 2000个线程同时填数据库的测试结果 如何用VC来画座标图,望众高手献艺 怎么编译pro*c? (unix下)———在线等!!!! 今天升到5个裤衩,高兴,散分 有谁知道《斯托克代尔悖论》的内容? 使用VB6.0编程设置IIS5.0服务器 谁有InstallShield,包括汉化界面,中文语言包和注册码,200分回报 freedorm格式数据窗口打印问题,字太长如何自动换行, 一个头痛问题。 做过政府审计软件的请帮帮忙,怎么从十来套不同表结构的数据库导数据到一个固定表结构的数据库呢? 如何让菜单可用或不可用?急啊~~ Lotus中的js问题 哪有Oracle中文最新版下载呀, 请问各地delphi认证培训的费用是多少? re:下雨了 怎么样加提示框 借一个问题!XP里面网卡怎么工作不正常 请问有什么办法破VBA的密码 CEdit 背景色的问题 100 分 请问vb中浏览器控件是在哪个文件中,另外我想在vb程序中加入介绍性网页,应该怎么办! 了解jpeg的请进 高分急求数据库解决方案! 请问vb中浏览器控件是在哪个文件中,另外我想在vb程序中加入介绍性网页,应该怎么办! 存储类 在MainFrame里怎么得到一个指向MyDoc类的指针? 上海的弟兄前来领分!!!! 能ping通代理服务器,但不能上网(ftp等都不能用)。有那些原因! 谁有api做的串口通讯例子 很简单的Temporary used 问题,就是搞不清,请哪位详细点拨一下,铭谢 DataGrid中使用HyerLinkColumn,请怎样动态传递多个参数或改变DataNavigateUrlFormatString的值(在线等待答复) 在winsock1.1下怎样监听网络事件。(请给个API 的 sample ) 高分急求数据库解决方案! 高分求助软件稳定性问题! 高分请教exej4的问题!~ 我的代码可以被编译吗? 十万火急(在线等)关于发邮件问题!多谢了(最后50分了) 感谢各位的鼎力支持!!! 急:如何让sqlload使用命令行方式,把数据库中的指定几个表导出?(在线) 单元全局变量与工程全局变量有什么区别 问一个关于JSP和XML结合的问题. 请问怎样用ASP连接Mysql数据库,急! 有没有j2ee的qq群??? win2k里的smtp服务器,怎么是需要身份验证的? 怎样让智能ABC记住输入的词组呢? 你在delphi中,用到了多少面向对象的知识? Dragover事件什么情况下触发 小齿轮每分钟转400周,大齿轮每分钟转的周数比小齿轮少转5/4大齿轮每分钟转多少周 已知向量a,向量b,向量c共线,求证向量OA,向量OB,向量OC不共线 西周在治理国家有什么创新 一切骨骼肌是一种组织吗 函数y=a(x-2)的平方+b 经过点(-1,5),(m,5),求m及其解析式 C l fête des a h,Je t’aime 求意思?貌似是法语!他说前一句有潜伏在内 第七题,条件极值 请问各位最后一个拼音是什么?谢谢! 这句法语事什么意思啊j'ai des envies de是什么意思啊 j'ai des envies de 微分方程的基础问题求教 看了一下中华民族的历史,朝代交替,那中华人民共和国什么时候被推翻啊 工人阶级是我国领导阶级的原因是多选A中国共产党的工人阶级先锋队性质决定了工人阶级的领导地位B中国工人阶级是中国先进生产力和现金生产关系的代表C必须保障工人阶级的合法利益D工 和我在一起你觉得幸福吗?这句话的英文怎么翻译`? 中国的封建主义彻底被推翻是在什么时候? 神经兴奋如何产生?与钠或钾离子移动关系。 The sun shone nearly every day and it didn't rain at all. 中国的帝制是什么时候被推翻的,什么时候被废除,在什么环境下废除的为什么废除了? 神经组织能产生刺激吗? 还可以用哪些词可以形容 第一第二 第三 状元 榜眼探花 冠亚季军.还有什么?有创意更好. 请问西方经济学(微观)中,脊线的准确定义是什么? il est tard, on a encore des gens a voir avant l'heure du dejeuner.这句话直译是什么意思?on和a是什么意思? 求证:在周长一定的矩形中正方形面积最大. 微观经济中“均衡价格”的概念是什么求完整概念.这是习题中的解释概念一题. Quartier des fleurs, à Face résiduelle rire, rire les gens du commun . 谁会这句话的意思? 灯泡发光的强度与灯丝的电阻有关系么 请问下西方经济学(微观部分)和微观经济学是不是一个概念? 各秋万代是什么意思? 周长一定的所有矩形中正方形面积最大.类比到空间可得结论是什么 帮我把字查出拼音,帮我把词查出解释, Forever是永远的意思吗? 请问一个高阶线性微分方程的问题把n阶线性微分方程转化为一个一阶n元线性微分方程组之后,先求其齐次方程组的基解矩阵,再用常数变易公式求得其非齐次方程组的解,然后其第一个分量就 看拼音写词.求学霸看一看题目有没有错 公有制经济和非公有制经济在我国国民经济中发挥着怎样的作用 高阶线性微分方程怎么求解啊? 5均量线金叉10均量线,凡是5天之内符合这个条件的个股,如何公式?也就是金叉后,5天或者小于5天的,都要选出来,如何公式?就是最近5天(含5天)金叉的,都要选出来! 龙眼干怎么晒 导数证明, 在可降价的高阶微分方程中有两种形式的微分方程:y''=f(x,y') 和y''=f(y,y').其中前面的方程可设y'=p,那么y''=dp/dx=p',来求得答案,而后面的方程则用y'=p,则y''=p*dp/dy来求得答案.举例说明:yy''-y'^2=0 已知一次函数y=x+m与反比例函数y=m+1/x(m≠-1)的图象在第一象限内的交点为P(Xo,3)(1)求Xo的值(2)求一次函数和反比例函数的解析式麻烦解答下. 六年级数学练习册p12答案2.1的 请问(y')^2+1=2*y*y'' 这个微分方程应该怎么求?做不来啊... 晒龙眼干怎么晒 把电路中灯泡换成电阻器有什么现象 拼音这道题谁教教我? 地的人口出生率为3.5%,而自然生长率为2%,那么该地有可能是 线性微分方程的特解和通解, ___the days _____hotter and hotter ,our summer vacation is nearer and nearer.A.As ,beingB.With being请说明理由 若OB(向量)= m*OA(向量)+ n*OC(向量),且A,B,C三点共线,(改直线不经过O),为什么m+n=1 金属的电阻随着温度的升高而增加,小灯泡发光时的电阻比不发光时的电阻大得多,在课外兴趣活动时,有两位同学用实验研究小灯泡的电功率跟两端的电压关系,所接电路如图所示:(1)甲同 Our vacation lasts 20 days.中20 days 做什么成分 因式分解:(x2-2x)(x2-2x-3) (a2-5a+5)(a2-5a-3)-9 (a+1)(a+3)(a+5)(a+7)+15 若某动物离体神经纤维在两端同时受到刺激,产生两个同等强度的神经冲动,两冲动传导至中点并相遇后会 .停止传导 2010六年级上册语文题组训练(人教版) 急用 新民主主义革命的领导阶级是 小齿轮每分钟转400周,大齿轮每分钟转的周数比小齿轮少5分之4.大齿轮每分钟转多少周? 非洲为什么是人口自然生长率最高的大洲? 如何使神经高度兴奋真诚求答 , 小齿轮每分钟转400周,大齿轮每分钟转的周数比小齿轮少4/5,大齿轮每分钟转多少周? 已知函数f(x)= -2m的平方+m+3 x (m€z)为偶函数,且f(3) 用显微镜观察玻片标本,目镜是12.5×,物镜是40×,请问,这家显微镜能将观察到的玻片标本放大多少倍?算式哦 美国一名女子因戴谷歌眼镜开车遭警察处F35中距离导弹试射成功 日本自卫队俄罗斯警方逮捕一名系自杀式炸弹腰带男F35中距离导弹试射成功 日本自卫队美国一航天飞机“追梦者”试飞降落时滑俄罗斯警方逮捕一名系自杀式炸弹腰带男日本花美男惊艳女装照 让女生情何以堪安倍警卫车队连续两天发生交通事故 无日本一空宅被拆除时惊现\"死婴罐\"民调显示日本近1/4年轻人称自己在“美国一航天飞机“追梦者”试飞降落时滑新加坡欲购88套美国多管制导火箭发射日媒披露日本或早已成为美情报机构窃听安倍警卫车队连续两天发生交通事故 无分析称土耳其宣布选中国导弹只是向欧美科学家在澳大利亚被捕海岸外发现新品种巴勒斯坦欲就以色列建定居点寻求国际司纳粹盖世太保头目被指埋葬于柏林犹太人马来西亚移民局前总监被判处贪污罪名成Facebook首次承认传闻:年轻人日政府开发海底资源动作迟缓引日研究机马琳完婚我的发现残疾歌手刘海兵塞给“大衣哥”1万元肝胆系“膏方”之适宜曙光基金开创“三位一体”育人模式穿正装时的举止女生占位太狠,男生“抗议”:请手下留韩式微创植眉 超高人气轰动全城首辆献血房车上岗怎样道歉才能挽回局面3岁男童吃果冻被呛死我的爸爸和妈妈公车上书的举子、粤汉铁路的建造者刘美琴对初次见面的洋儿媳不满意不得提供鱼翅燕窝和高档酒水“来滨湖和张导做邻居”史上第100杆147明天最低温将重回冰点以下沪宁高速连接线上霾都这样了,少放点鞭炮好不好?300多学生志愿者
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘