一、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日星期五