socket.io 中文文档

客户端

建立一个socket连接

var socket = io(“ws://103.31.201.154:5555”);

监听服务消息

socket.on('msg',function(data){
    socket.emit('msg', {rp:"fine,thank you"}); //向服务器发送消息
    console.log(data);
});

socket.on(“String”,function(data)) 监听服务端发送的消息 Sting参数与服务端emit第一个参数相同

监听socket断开与重连。

socket.on('disconnect', function() {
    console.log("与服务其断开");
});


socket.on('reconnect', function() {
    console.log("重新连接到服务器");
});

客户端socket.on()监听的事件:

  • connect:连接成功
  • connecting:正在连接
  • disconnect:断开连接
  • connect_failed:连接失败
  • error:错误发生,并且无法被其他事件类型所处理
  • message:同服务器端message事件
  • anything:同服务器端anything事件
  • reconnect_failed:重连失败
  • reconnect:成功重连
  • reconnecting:正在重连

当第一次连接时,事件触发顺序为:connecting->connect;
当失去连接时,事件触发顺序为:disconnect->reconnecting(可能进行多次)->connecting->reconnect->connect。

Demo

自定义事件

socket.io主要是通过事件来进行通讯交互的。

除了自带的connect,message,disconnect三个事件以外,在服务端和客户端用户可以自定义事件。

服务端和客户端都通过emit方法触发对端的事件。

例如下面的代码在服务端定义了一个chat message事件,事件参数为$msg。

use PHPSocketIO\SocketIO;
$io = new SocketIO(2021);
// 当有客户端连接时
$io->on('connection', function($connection)use($io){
  // 定义chat message事件回调函数
  $connection->on('chat message', function($msg)use($io){
    // 触发所有客户端定义的chat message from server事件
    $io->emit('chat message from server', $msg);
  });
});

客户端通过下面的方法触发服务端的chat message事件。

<script src='//cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
<script>
// 连接服务端
var socket = io('http://127.0.0.1:3120');
// 触发服务端的chat message事件
socket.emit('chat message', '这个是消息内容...');
// 服务端通过emit('chat message from server', $msg)触发客户端的chat message from server事件
socket.on('chat message from server', function(msg){
console.log('get message:' + msg + ' from server');
});
</script>




资料

posted @ 2017-10-12 15:48  hopher  阅读(1893)  评论(0编辑  收藏  举报