位置: 编程技术 - 正文

使用 PHP 消息队列实现 Android 与 Web 通信(php消息队列面试题及答案)

编辑:rootadmin

推荐整理分享使用 PHP 消息队列实现 Android 与 Web 通信(php消息队列面试题及答案),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php消息队列rabbitmq,php 消息队列redis,php使用消息队列,php消息队列kafka,php消息队列rabbitmq,php消息队列实现秒杀活动,php消息队列实现秒杀活动,php消息队列rabbitmq,内容如对您有帮助,希望把文章链接给更多的朋友!

需求描述很简单:Android 发送数据到 Web 网页上。

系统: Ubuntu . &#; apache2 &#; php5 &#; Android 4.4

思路是 socket &#; 消息队列 &#; 服务器发送事件,下面的讲解步骤为 Android 端,服务器端,前端。重点是在于 PHP 进程间通信。

Android 端比较直接,就是一个 socket 程序。需要注意的是,如果直接在活动主线程里面创建 socket 会报一个 android.os.NetworkOnMainThreadException, 因此最好的方法是开个子线程来创建 socket,代码如下

然后是发送消息

完成后还需要关闭 socket

下面是服务器 PHP 端。

首先要运行一个进程来接收信息。

也比较简单。这个进程是独立运行的,那么打开网页请求数据,需要从另一段脚本接入,下面就需要用到进程间通信,我选择消息队列,也就是上面的 $msg_queue 变量。使用 PHP 消息队列实现 Android 与 Web 通信(php消息队列面试题及答案)

脚本主程序这么写。

其中的 ftok() 函数就是生成一个队列的 key,以区分。

那么handleData() 的任务就是把收到的消息放到队列里面去

Socket 进程脚本骨架

这样一来,其他进程就可以通过 key 找到这个队列,从里面读取消息了。使用这样可读

现在就差最后一步,如何主动把数据发往前端?这要用到 HTML5 的新特性:服务器发送事件(要使用较新的非 IE 浏览器,具体查看这里)。直接看JS代码那么这个 getData.php 就是上面那个从消息队列获取数据的脚本。只是为了让它被识别为服务器事件,需要加一点&#;式上的说明,具体如下。

下面就可以开始运行,首先运行服务器

php socket.php

打印了 listening 就可以使用 Android 设备连接了。

然后再用 Web 上 JS 请求 getData 脚本,请求后前台可以不断地获得新的数据。需要注意的是消息队列可能会阻塞(消息量达到上限),再有就是 JS 本身消息机制的限制,因此丢失,延迟等现象频发。

Web 通信的老问题就是稳定性。以前老是怨恨 Web QQ 掉包,其实整个 Web 革命尚未成功。

JSON解析的两个函数 /optJSONObject源码解析:/***Returnsthevaluemappedby{@codename}ifitexistsandisa{@code*JSONObject}.Returnsnullotherwise.*/publicJSONObjectoptJSONObject(Stringname){Objectobject=opt(name);returnobje

九大角度全方位对比Android、iOS开发 对于许多创业者来说,选择Android还是iOS永远是一个棘手的问题。最近,有数据显示Android的市场份额已经突破%。可能有不少人会觉得因此开发者在两个

问题:android activity中使用viewpager显示fragment 在自己的开发项目DNF新闻中,在主页面的MainActivityextendsFragmentActivity,其中,在activity中创建viewpager,并创建对应的Fragment。代码如下:publicvoidinitViewPager(B

标签: php消息队列面试题及答案

本文链接地址:https://www.jiuchutong.com/biancheng/371081.html 转载请保留说明!

上一篇:高级android高斯模糊技术-媲美IOS(高斯软件最新版本)

下一篇:JSON解析的两个函数(json解析 java)

  • 收到失业金返还什么意思
  • 专项应付款和政府补助的区别是什么
  • 滞纳金按年怎么算
  • 备用金支出怎么记账
  • 作废冲红的发票怎么做账处理
  • 税务局开普票怎么开
  • 劳务发票未收到做账
  • 工伤抚恤金算遗产吗
  • 销售肉制品税率
  • 进项借方有余额怎么调账
  • 电子发票一定要入账吗
  • 企业如何增加净资产
  • 增值税减免税如何处理
  • 个人出租场地个人所得税
  • 广告制作费怎么入账
  • 外购固定资产进项税
  • 建安企业结转成本如何计算
  • 各地土地使用税区域差距大
  • 暂估入库价格高于实际价格怎么调整
  • 长期股权投资计提减值准备
  • 会计事务所成本核算方法
  • 劳务工程款和工人工资的区别
  • 资源管理器一直弹出
  • 计提的坏账准备可以转回吗
  • office自定义功能区
  • 网页浏览器字体颜色怎么改
  • 剑灵2.0win7
  • 查账征收的个独可以随意分配利润吗
  • php fork
  • windows更新暂停怎么恢复
  • scdeploy.exe
  • Win11 Build 22449.1000更新里哪些内容?Win11 Build 22449更新介绍与安装方法
  • win10ie浏览器打开就崩溃
  • PHP:apache_lookup_uri()的用法_Apache函数
  • redhat无法进入图形界面
  • php数组去重函数
  • PHP:imagecreatefromgd()的用法_GD库图像处理函数
  • php使用什么开发工具
  • php编程获取音频信息
  • burp怎么安装
  • 购买方未抵扣,销售方申请红字
  • excel2016添加指定行数
  • 单据已经生成凭证,不允许自动删除
  • 税法折旧和会计折扣会计分录
  • 投资收益的核算依据
  • 固定资产原值怎么确定
  • 营改增后建筑企业财务核算
  • sql效率优化
  • 固定资产净残值可以为0吗
  • 美容院收入怎么做会计分录
  • 职工食堂费列入哪里
  • 行政单位基建账地质灾害评估报告计哪个科目
  • 暂估成本的账务怎么处理
  • 社保返还补贴政策2020
  • 采购成品油会计分录
  • 新成立的公司都是小微企业吗
  • mysql常见优化手段
  • macbookpro mysql
  • Linux下MySQL5.7.18 yum方式从卸载到安装过程图解
  • mysql5717安装及配置超详细教程
  • Win7安装i219v网卡驱动
  • 魔方win10
  • dotnetfx35
  • subss
  • 电脑主板故障分析与判断
  • win10应用商店不好用
  • linux 翻译
  • jquery时间轴插件
  • node.js基础入门
  • python的设置
  • javascript中继承
  • 成都国家税务局每个月交全民付的钱是什么
  • 地税局 要官
  • 安徽省国家税务局网上办税平台
  • 手写发票属于增值税普通发票吗
  • 重庆税务电子税登录
  • 股权转让本人不签字可以吗
  • 江苏企业所得税税率2023
  • 外贸公司销售额可以10亿以上吗
  • 财税库银后端商户为什么扣钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设