位置: 编程技术 - 正文

使用 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)

  • 发票税率开错了怎么办
  • 契税为什么计入成本
  • 个体工商户需要报税吗
  • 公司哪些支出不影响报表净利润总额
  • 零息债券支付利息吗
  • 受托代销商品手续费会计分录
  • 货到票未到怎么入账
  • 收到货款做账
  • 应纳税所得额计算公式excel
  • 用白纸写的收据怎么入帐?
  • 公司产品中请别人开发的软件怎么会计处理?
  • 哪些费用可在缴纳企业所得税前扣除呢?
  • 待清算直销银行
  • 企业购进货物若发生下列事项,其增值税进项税额
  • 银行处置以物抵债违法吗
  • 广告公司怎样
  • 以前年度损益对应的科目
  • 营改增后二手固定资产折旧纳税调整怎么做账?
  • 原材料入账价值合理损耗
  • 预付的各种押金
  • 普通支票如何转账
  • 在Win10系统中卸载最近更新的补丁并重启电脑
  • 印花税的征收项目
  • 研发费用加计扣除
  • 未开票收入跨年开票
  • 桌面级cpu天梯图2023
  • php二维数组添加数据
  • 个体户流水过大怎么避税
  • session php用法
  • springboot集成camunda+bpmn
  • linux安装linux
  • 企业购进房产怎么抵扣
  • 贷款逾期的本金利息
  • 项目提成比例
  • php strlen函数
  • 微信小程序游戏手游排行榜
  • 企业销售商品应该向购货单位收取的货款
  • vue框架搭建步骤
  • readline只读一行
  • starting command
  • 经费支出的定义
  • 不是企业职工能否挂靠企业交社保
  • 印花税没有及时交会有什么后果
  • 哪些人不要申报个税
  • Linux下MySQL数据库的主从同步复制配置
  • 个人写收据要写身份证号吗
  • 联营企业与合营企业纳入合并吗
  • 企业收到运输发票
  • 怎么盘存货
  • 进项税留抵税额是什么意思
  • 按季度报税怎么处理
  • 0税率出口退税
  • 支付股东借款现金流量表怎么填
  • 过年给员工派红包合适吗
  • 银行存款付款是借方还是贷方
  • 收到同业清算互联前置如何入账
  • 京东卖家怎么开普通发票
  • 劳务派遣人员能有营业执照吗
  • sqlserver游标的使用
  • mac安装mysql的两种方法(含配置)
  • win8打开运行的快捷键是什么
  • win8系统如何开机直接进入桌面
  • 右下角小喇叭调不了声音
  • windows8文件夹怎么加密
  • linux me
  • Windows tips小技巧
  • win8的计算机在哪里
  • linux单个文件夹文件数量
  • 在linux中使用什么可以执行shell脚本
  • javascript怎么学
  • node.js 核心http模块,起一个服务器,返回一个页面的实例
  • 模拟新浪微博用户注册程序设计
  • 山东国地税合并6月挂牌
  • 依法纳税的看法
  • 什么是增值税留抵退税
  • 福建省顺昌县人口有多少
  • 新余契税
  • 先进单位表彰发言稿
  • 北京车船税新标准
  • 非居民企业机构场所核定征收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设