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

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

先试后买:Agawi推新型广告服务AppGlimpse 搜狗CEO王小川:“硬件免费”是误区 平均比Hive快24倍,Impala剑指Stinger 利用ElasticSearch和Redis检索和存储十亿信息 微软高管再度失血 媒体及娱乐副总裁因内部重组离职 Google研制智能隐形眼镜 帮助病人监测血糖指标 盘点2013:最优秀的HTML5&amp;CSS3设计【多图】 AMD:未来PC将同时搭载Android、Windows双系统 如果你是CEO,你打算给自己开多少工资? IBM X6架构中国首发,目标是云与大数据 Pivotal聘用eBay前副总裁,继续发力云计算市场 智能手机的功能越来越复杂,可惜用户不买账 一周消息树:Windows 9要来了,会有哪些改变? 简单几步解决IE11无法显示此页的问题 研发周报:Java 8最终发布日期敲定,即使有bug也要发布 一周云热点:Google打造云中Hadoop便捷版,强势对抗AWS 追溯Unite大会设计理念 感受Unity进化史 移动周报:仰望大神,不如退而探索! 腾讯发布QQ浏览器微信版 支持拖拽分享、消息提醒等功能(图) 乐视TV:LetvUI连续31周迭代36个版本 190个乐迷需求实现119个 云服务商评估体系建立,首批10家企业通过可信云服务认证 《找你妹2》开发者云中游再声明:热酷涉嫌严重违约发布侵权竞品 柴可:大姨吗的轻应用抉择 盘点2013年IT界25个最古怪的面试题 云计算再掀创业热潮,19家企业入驻微软创投 IBM斥资12亿美元,全球大规模扩建数据中心 “Careerfocus之夜”2014年新春客户答谢晚宴在京举办 Google蚕食了维基百科的访问量? 微软Surface Pro 2 的成功之道 精简代码,为网站减负的十大建议 应用宝逆袭上位 将重构腾讯移动应用分发体系 yzqb()发工资了47分 请教一个问题,编译不通过,不知是什么错误。 帮帮忙!神经网络 vb 中打印机如何检测? 假如用户正在使用别的软件,如何自动使我的程序获得焦点 批量转移数据 SQL 斑竹呀急,快帮帮我! 想用ADO连接internet上服务器中的database,怎么动态建立间接网上数据库的DSN? 我的Web站点为什么没有安全性? 请问那些捌角人小图片如何做呀? 我也要一份《全套国标软件设计文档》 好人们,谁也发给我一个吧! 如何得到对话框在桌面的位置 紧急求救!编译时的错误! 改变Edit控件后出现字符重叠显现如何解决? 关于DBASE,CLIPPER,FOXPRO,VFP的历史发展 请问那些捌角图片如何做呀? 谁会刻光盘!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! lazywolf(二代) 有没有提供几何图形模板的类(如正方形和圆形)? typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD);是定义函数指针吗?为什么这样定义呢? 如何创建vector数组!我这些不对static Vector report[8]=new Vector()[8];高手指点me:) 如何画一个透明的Rectangle VC中修改字体的问题 比你更急!ASP。NET中打开文件问题? HTTP POST QUESTION????? delphi中的pop3控件怎么取得带附件的邮件的正文呀? J2EE随带文档的中文版本哪里有下载??? chr 函数问题 弟兄们,我明天开始要回来了,回到这个阵线了 如何退出双重循环 帮兄弟一把,一个小问题! ADO的连接 高分求解,如何取得默认打印机支持的纸张类型? 用deamweaver ultradev 做的asp怎么修改可以与数据库连接?? 时间问题 ADO连接问题 如何设置串口的流量设置,?设置为无. 请问怎么给JTabPane上各个JPanel(如:JPanel1,JPanel2)使用setMnemonic() 找不到确切哪一天的记录? 各位高手,为什么我在用NMUDP发送数据时当接收端程序没有启动的时候总是提示Stream Write Error,是什么原因,怎么才能让这个错误提示不出现 《机械原理》课有感 大哥 怎么在网上查到这的硬盘是不是水货好像输一个序列号就可以是不是 有谁能提供计算机及应用专业的本科毕业论文,最好是数据库方面的? 注册crystal report 都需要哪些.dll呢 如何能够同时DownLoad多个文件,就像OutLook的文件添附功能? 从sql serevre 6.5 升级到 sql server 2000后 原先的中文字段为何是乱码?急! 怎样用select下拉菜单的双击事件实现页面的提交?? 圣诞节要到了,mm 的命令也到了,要我准备好money,大家帮我出出注意啊~~~~~~~~ 请教各位jsp高手 office2000英文版无法uninstall sorry,应该是如何检测一个按纽被单击 铜合金的密度是多少啊? 为什么饮用含有钙离子镁离子含量高的硬水达不到补钙镁的效果而且是不正确的,喝硬水对身体有害吗? 黄金18k、24k的含义,含金量各是多少啊?多谢!有知道的没?麻烦解释透彻一点. 求铜合金的密度 一个带孔的铜球,体积为80立方厘米,质量为267g,若用它来盛水,最多能盛多少? 18K黄金中的含金量与其他稀有金属含量的比是3:1,现有一款20克的18K黄金首饰,其中含金多少克? 我们喝的水是硬水还是软水?是硬水对人体好还是软水好? 一个带孔的铜球,体积是80厘米的3次方,质量是267克,若用它盛水,至少能盛多少克 黄金的纯度通常用K来表示,24K金为纯金.则18K金中含金量为? 氢氧化钙溶液与氯化钙溶液为什么会生产氢氧化钙 喝硬水里的氧气对人体有什么作用? 一个带孔的铁球,体积为80立方厘米,质量为267克,若用它装水,最多能装多少水? 硬水易生水垢,用蒸馏的方法能使硬水软化这句话对吗? 把5g食盐溶解在120g水中,所得溶液中溶质的质量分数是多少? 补钙的途径1.经常饮用钙离子含量高的硬水2.大量补充维生素D.为什么第一个不正确?说明理由. 矿泉水是硬水吗?如怡宝那些.在知道搜索看到许多不同的答案,请给一个合理的答案和令人信服理由. 硬水长期饮用为何对身体不好? 用同样材质的铜制成两个零件.一个体积是15立方厘米,重133.5克.另一个体积是20立方厘米,重多少 矿泉水 硬水为什么是软水呢```矿泉水里面不是也有钙和镁吗 2.把5g食盐溶解在120g水中,所得溶液中溶质的质量分数是多少?急!帮帮忙! 用同样材质的铜质制成的两个零件.一个体积15立方厘米,重133.5克.另一个体积20立方厘米,重多少克? 用含钙、镁离子较多的硬水洗衣服时,用肥皂更好还是洗衣粉更好哦? 有一金铜合金工艺品,体积为3立方分米,质量为37.1千克.求此工艺品中所含金的质量.(p金=19.3×10³千克/立方米,p铜=8.9×10³千克/立方米) 用同样材质的铜加工成两个零件.一个体积为15立方厘米,重133.5克 ; 另一个体积为20立方厘米,重多少千克 矿泉水算是硬水吗? 有一块体积为1.8立方分米的金铜合金,质量为20千克,问:含金百分比. 诉求答案 用同样材质的铜制成的两个零件.一个体积20立方厘米,重178;另一个体积26立方厘米,重多少克? 向一定量的未知浓度的氯化钙溶液中,加入硝酸银溶液至完全沉淀为止,结果生成的溶液质量与所加入的硝酸银溶液的质量相等,求氯化钙溶液溶质质量分数? 一件标称纯金的工艺品,其质量是100g,体积为6cm立方,他是否由纯金制成?(p金=19.3*1.立方kg/m立方) 有两个同样材质的零件,一个零件重1068克,体积是120立方厘米,另一个零件重756.5克,体积是多少立方厘米 向一价金属碘化物中加AgNO3溶液,到沉淀完全,生成硝酸盐质量是原碘化物质量,求原硝酸银质量分数向一价金属的碘化物中逐滴滴加硝酸银溶液,直到沉淀完全为止,已知生成的硝酸盐溶液质量等 金铜合金工艺品,体积为3dm3,质量为37.1KG.求所含金的质量?(密度金=19.3X1000千克每立方米)铜=8.9X1000千克每立方米 生活中的自来水是硬水还是软水? 硝酸银溶液中加HCI至沉淀完全反映,将沉淀干燥,质量与盐酸质量相等,盐酸质量分数是?请说明解题思路或步骤 喝硬水为什么不能补钙? 含有____的水叫做硬水,含有____的水叫软水.鉴别硬水和软水的方法有____(有——现象的水叫软水)和____法(无——现象的水叫软水)鉴别硬水和软水的方法有_________,生活中有什么方法使硬水 有NaCl.CaCl2.AlCl3三种溶液,溶质的物质的量相等若分别与足量的硝酸银溶液反应,若生成的沉淀的质量相等有NaCl.CaCl2.AlCl3三种溶液,溶质的物质的量相等若分别与足量的硝酸银溶液反应,则生成沉 硬水的钙镁离子对人有害还是能补钙? 有关水的性质硬水转化为软水的方法?——————(生活常用)————(实验室用)水电解是正极生成( )负极( )两者H :O 体积之比( ) 质量H:O( )2.从物质类别的角度看水属于 硬水的危害? 什么是硬水?什么是软水?为什么硬水不好?喝硬水有什么危害? 某10%NaOH溶液,加热蒸发掉100克水后得到80ML20%的溶液,则该20%NaOH溶液的物质的量浓度为多少 长期饮用硬水的坏处只知道长期饮用软水对身体不好,会缺乏矿物质;那么长期饮用硬水会有怎样的坏处啊?这样岂不是喝什么水都不行了吗? 将80mlNaOH溶液倒入120ml的HCl中,所得溶液的pH为2,若选用NaOH溶液及HCl浓度相同,求其物质的量浓度说下理由,谢谢 两块合金,一块含金95%,另一块含金80%,将它们与2克纯金熔合得到含金90.6%的新合金25克,计算原来两块合金的重量. 长期饮用硬水对人体有什么危害? 某含0.8gNaOH的NaOH溶液恰好与40mL某浓度的盐酸完全中和.则该盐酸中HCl的物质的量浓度为多少 两块金与铜的合金,一块含金量为百分之95,另一块含金百分之八十,这两块合金与两克纯金熔合后得到含金量为百分之八十六点四的新合金二十五克.求两块合金的重量 长期饮用硬水会有什么危害? 配置一定物质的量浓度的NAOH标准溶液,用于测定未知浓度的HCL为什么“定容后,溶液页面最高点与刻度线处在同一水平面上”,会使所测HCL的浓度偏低? 两块合金,一块含金量为百分之95,另一块含金百分之八十,这两块合金与两克纯金融合得到含金百分之90.6的新合金25克,计算原来两块合金的重量用一元一次方程解呀 长期喝硬水对身体对什么危害,水该怎么处理来改变水质 一块合金中金和银的比是2:3,现在再加入6克银,共得合金36克,问新合金中金和银比是多少?算式 硬水会给生活和生产带来许多不便,生活中可以用什么方法降低它的硬度? 判断下列说法是否正确?为什么?在100g水中溶解20g食盐,所得食盐水中溶质的质量分数为20%.( )判断下列说法是否正确?在100g水中溶解20g食盐,所得食盐水中溶质的质量分数为20%.( ) (2)碳酸钙是一种廉价高钙补钙剂,虽然碳酸钙难溶于水,但服用后可转化为可溶性钙盐被人体吸收,其中的道理是(用化学方程式表示):__________________ .因此,碳酸钙在医疗上还可以用来治疗 . 纯金放在水里重量减轻十九分之一,纯银在水里重量减轻十分之一,合金重840克,放入水中轻48克,求含金量? 实验:用过滤法分离粗盐中难溶解杂质,为什么过滤时溶液在滤纸上不下漏 碳酸钙可以做补钙剂吗 含金量是金的体积占总体积的多少,还是它的质量占总质量的多少?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn