第47篇 WebRTC及PHP研究(十)

来源:互联网 发布:java 初始化对象 编辑:程序博客网 时间:2024/05/17 18:03

一、WebRTC研究

1.1DTLS

webrtc数据传输的加密和安全用到DTLS协议,它直接嵌入到应用和传输层,它吸取了TLS的许多相同的概念,并增加了对UDP的支持。

1.2添加文字聊天

  文字聊天的实现需要一些监听事件,如下:

  onerror:此监听器将检测任何连接问题。

  onmessage:此监听器将接收其他用户发送的信息。

  onopen:此监听器用来告诉我们有其他用户进行连接。

onclose:此监听器告诉我们有其他用户断开连接。

1.3用例

  添加文本聊天是对这个协议最简单的扩展,也可以用于游戏中,比如:雷神之锤用的就是这种模式。这样做的好处是:游戏公司不需要实现复杂的用于服务器来回传数据,玩家自己支付网络连接费用。常见的点对点游戏网络布局如下:

注:就是玩家之前彼此传数据,而不是借助游戏公司的服务器进行中介递送。

二、WebRTC文件共享

2.1两用户文件共享流程

a. 用户A打开页面,输入一个唯一的ID号(unique ID)。

b. 用户B打开同样的页面,输入与用户A相同的ID。

c. 两个用户使用RTCPeerConnection实现互联。

d.一旦链接建立,其中的一个用户能够选择一个本地文件用于共享。

e.另一个用户会在文件共享时收到通知,共享的文件可以通过链接传输到对方的计算机并且能够下载。

2.2获取对文件的引用

在文件共享中,用户第一件需要做的事情是从一个本地的文件系统中选取一个文件,这个可以简单地通过输入控件来实现。

三、谷歌浏览器获取蓝牙/USB数据

3.1 需要研究三个接口

Chrome Bluetooth

Chrome extension

Messaging API 用于插件与content script通讯传递数据

3.2 Chrome Bluetooth接口

接口名称:chrome.bluetooth

地址:https://developer.chrome.com/apps/bluetooth

a.使用chrome.bluetooth API可以连接蓝牙设备,所有的函数报告失败或成功可以通过chrome.runtime.lastError.

b.这个接口在Chrome 37后可用。我的Chrome版本为:

c.用法: “bluetooth”:{...}

 注:这个API仅工作在OS X,Windows 和 Chrome OS.

3.2.1 摘要之类型Types

 类型:AdapterState及Device

AdapterState的属性有:address,name,powerd,available,discovering.

Device属性有:adress,name,deviceClass,vendordSource,vendorid,productId,deviceId,type,paired,connected,connecting,connectable,uuids,inquiryRssi,inquiryTxPower

3.2.2摘要之方法Methods

 主法有四个:getAdapterState、getDevice、startDiscovery、stopDiscovery。

 1) getAdapterState用于获取Adapter的状态。

2) getDevice用于获取连接到系统上的蓝牙设备信息。

getDevices用于获取蓝牙设备的列表(指多个蓝牙设备包括最近插入的蓝牙设备)

3) startDiscovery用于触发开始检测蓝牙设备。

4) stopDiscovery用于触发停止检测蓝牙设备。

3.2.3摘要之事件Events

事件有四个属性:onAdapterStateChanged、onDeviceAdded、onDeviceChanged、onDeviceRemoved。

1)onAdapterStateChanged用于反应触发蓝牙时的状态变化。

2)onDeviceAdded:当一个新的蓝牙设备可用时,触发。


3)onDeviceChanged用于:当一个已知的蓝牙设备发生改变时触发。

 

4)onDeviceRemoved:在一个相当长的时间里,某个蓝牙设备被检测不可用或某个蓝牙设备被移除时触发。

3.3 Chrome extension接口

接口名称:chrome.extension

地址:https://developer.chrome.com/extensions/extension

3.3.1 类型Types

Types:包括一项ViewType。

注:扩展view的类型,

3.3.2 属性

3.3.3 方法

3.3.4 事件

四、php

4.1 php命名空间---------->操作符

关键字 namespace 可用来显式访问当前命名空间或子命名空间中的元素。它等价于类中的 self 操作符。

4.2 面向对象

  OOP:Object-orientedprogramming,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。

  对象的三个特性:

  对象的行为:可以对对象施加哪些操作,开灯,关灯就是行为。

  对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型。

  对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同。

面向对象内容包括:类、对象、成员变量、组员函数、继承、父类、子类、多态、重载、抽象性、封装、构造函数及析构函数、

类与对象的关系:

注:类定义了一件事物的抽象特点,类的定义包含了数据的形式以及对数据的操作,而对象是类的实例。

4.2.1php

语法:

成员函数创建:

调用成员函数:

运行结果:

4.3 php变量

4.3.1可变变量

   php变量区分大小写,php函数不区分大小写。

   php变量可以是中文,比如:$西施=’女’;但最好别用。

可变变量:

注:上述类似于

 

4.3.2 外部变量

 外部变量有:$_GET[]、$_POST[]和$_REQUEST[].

$_GET[]上传的数据少。

$_POST[]上传的数据量大,如果要改变限制,可改php.ini。默认有的是3M有的是8M。

2016年9月23日星期五

0 0