通过前面的学习发现,常见的websocket虽然可以很好地实现服务端和客户端的信息传递,但二者之间传递的数据只是简单的字符串,这对事物的描述,信息的传递是非常不友好的,下面将引入socket.io,来弥补这方面的不足。
先来一段简单的实现:
客户端代码:
服务端代码
运行client.html
可以发现,可以直接从服务器传一个对象。同时可以在终端看到从客户端发送的数据:{my: 'data'}
服务端的代码实现要依靠socket.io 实现,可以在相中通过 npm install --save socket.io进行安装,在server.js中引入就可以直接使用了。
可以发现,客户端和服务端数据传递类似于vue的父子组件通讯,通过socket.on监听某个事件,通过socket.emit触发某个事件,这个事件是自定义的,同时第二个参数就是需要传递的数据;
现在应用socket.io对之前聊天室的例子做一下改进:
客户端代码:
服务端代码:
代码更加精炼,同时避免了字符串和JSON数据之间的来回切换。