介绍

image.png

常用API和监听事件

image.png

浏览器端

  1. <script src="/socket.io/socket.io.js"></script>
  2. <script>
  3. // 1. 建立连接
  4. var socket = io.connect('http://localhost:3000/');
  5. socket.on('connect', (data)=>{
  6. console.log(data);
  7. // 1.1 打开通道
  8. socket.emit('open');
  9. });
  10. // 2. 监听
  11. socket.on('msg', (data)=>{
  12. console.log(data);
  13. dealWithMsg('service', data);
  14. });
  15. $('#btn_send').on('click', ()=>{
  16. // 1. 获取内容
  17. let msg = $('#msg').val();
  18. // 2. 显示到界面
  19. dealWithMsg('custom', msg);
  20. // 3. 发送数据给服务器
  21. socket.emit('msg', msg);
  22. // 4. 清空输入框
  23. $('#msg').val('');
  24. });
  25. // 3. 信息处理
  26. let dealWithMsg = (className, data)=>{
  27. // 3.1 创建li标签
  28. let $liDom = $('<li>');
  29. $liDom.attr({
  30. 'class': className
  31. });
  32. // 3.2 创建li标签
  33. let $span = $('<span>');
  34. $span.attr({
  35. 'class': 'chat-msg'
  36. });
  37. $span.text(data);
  38. $liDom.append($span);
  39. $('#chatList').append($liDom);
  40. // 让滚动条在最底部显示
  41. let scrollHeight = $('#chatList')[0].scrollHeight;
  42. $('#chatList').scrollTop(scrollHeight);
  43. };
  44. </script>

客户端

  1. // 1. 引入包
  2. const socketIO = require('socket.io');
  3. // 2.针对 http server 生成 socket.IO 实例对象
  4. const io = socketIO(server);
  5. // 3. 建立连接
  6. io.on('connection', (socket)=>{
  7. console.log('建立连接成功!');
  8. // 3.1 返回消息
  9. socket.emit('msg', '您好, 我是小撩! 有什么可以帮您~');
  10. // 3.2 接收客户端的消息
  11. socket.on('msg', (data)=>{
  12. let msg = backMsg(data);//返回的消息
  13. socket.emit('msg', msg);
  14. });
  15. });