# :-: 开始使用
## 说明
* 开发支持全平台,没有任何编程语言,服务器限制
* 所有功能通过HTTP协议,使用API的方式完成
* 当前仅完善以下基本功能
* 客户端:添加/删除好友,好友申请列表,同意/拒绝申请,好友列表,给好友发消息
* 服务端:发消息给全部用户,发消息给指定用户
* 以上功能仅为普通聊天功能,如果可以满足您的业务,完全可以直接使用系统提供的API完成,无需创建数据库,不用关心好友关系这些基本逻辑,如果有牵扯复杂的业务逻辑,您可以把该系统当做是一个WebSocket服务系统,仅用来收发消息,业务逻辑在自己服务器实现。
## 工作原理
1.客户端使用WebSocket连接服务器,客户端仅使用WebSocket即时接收消息使用,为了安全考虑,其他功能全部通过API实现;
2.使用API绑定用户对应客户端到IM服务器
3.正常使用其他功能接口
## 开始接入
* 目前仅PHP封装了接口,其他语言请自行调用,如果有封装好的,可以联系我,分享给大家。
PHP封装的SDK,[下载](http://lufeiim.baomamishu.com/LufeiImLib.zip)
## 客户端示例代码
```
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Client Test</title>
<script language="javascript"type="text/javascript">
var isok=false;
websocket = new WebSocket('ws://47.108.188.239:2046/');
//websocket = new WebSocket('ws://127.0.0.1:2046/');
websocket.onopen = function(evt) {
console.log('connect');
console.log(evt);
//websocket.send('{"data":"您好,世界!"}');
};
websocket.onclose = function(evt) {
console.log('onclose');
console.log(evt);
};
websocket.onmessage = function(evt) {
console.log('onmessage');
if (evt.data) {
//console.log(JSON.parse(JSON.parse(evt.data)));
}
};
websocket.onerror = function(evt) {
console.log('onerror');
console.log(evt);
};
function sendMsg(){
if (!isok){
alert('请先绑定客户端');
return;
}
var sendData = { 'data': document.getElementById('name').value,'uid':document.getElementById('uid').value};
websocket.send(JSON.stringify(sendData));
}
function bindto(){
var sendData = {
'app_id': document.getElementById('app_id').value,
'uid':document.getElementById('uid').value,
'cmd':'bind'
};
websocket.send(JSON.stringify(sendData));
isok=true;
}
</script>
</head>
<body>
<h2>WebSocket Test</h2>
app_id:<input type="text" name="app_id" id="app_id" value="9e17e92d8b58a910"/><br>
UID:<input type="text" name="uid" id="uid" /><br>
TOID:<input type="text" name="toid" id="toid" /><br>
MSG:<input type="text" name="name" id="name" />
<a href="javascript:;" onclick="bindto()">绑定</a>
<a href="javascript:;" onclick="sendMsg()">点击发送</a>
</body>
</html>
```
PHP 示例代码
```
//引入上面下载的SDK文件
include_once __DIR__.'/../../../'.'LufeiImLib.php';
class LufeiIm
{
protected $appid='您申请好的APPID';
/**
* 绑定到聊天室
* 该接口 每个新用户首次必须绑定一次
*/
public function binding(){
//实例化API库文件
$lufei=new LufeiImLibClient($this->appid);
//调用绑定API接口
$reg=$lufei->binding($roomtoken,$uid);
//binding 该接口需要两个参数,第一个为客户端连接WebSocket服务器返回的参数
//uid 为您平台用户的id(服务器作为您系统的用户标识,可以不为真实的uid,但后期不能变更)
}
//......其他API请看下一页
}
```