多人共享、同时操作的电子白板,让不同的参入者以不同的颜色来画画;可以保存当前room的内容,以让后来者可以直接加载所有内容。

在github上找到一个用html5 canvas实现的一个电子白板的例子:

https://github.com/kblcuk/canvas-whiteboard

它是基于socket.io来实现多人白板的共享、操作。本文在它的基础上加上了房间,这样只有同一房间的人才会共享。

1  加入房间

客户端:

var roomName = location.search.split('?')[1];
    // Init socket.io
    App.socket = io.connect('
http://localhost');
    App.socket.emit('create', roomName);

服务端:

io.sockets.on('connection', function(socket) { 

    socket.on('create', function(room) {
        socket.room = room;
        socket.join(room);
               
         //get existed image as soon as join room
        io.sockets.in(socket.room).emit('setup', colors[i++], imageData[socket.room]);       
    });

……

2 后进房间的人,要可以看到前面所有的内容

io.sockets.in(socket.room).emit('setup', colors[i++], imageData[socket.room]); 

3 只在房间内广播

服务端:

socket.emit('draw', data);

4 发送、接收

发送:

App.socket.emit('do-the-draw', data); // Broadcast draw.

注: 客户端发送时,不需要加上broadcast.to(socket.room)

接收:

// Broadcast all draw clicks.
    socket.on('do-the-draw', function(data) {
        socket.broadcast.to(socket.room).emit('draw', data);
        imageData[socket.room] = data.imageData;
    });

一步一步搭建客服系统

.

一步一步搭建客服系统 (7) 多人共享的电子白板、画板相关推荐

  1. 搭建客服知识库,轻松解决售后服务问题

    在搭建客服知识库前,我们要先了解什么是知识库,知识库能给我们带来什么好处.小编接下来给大家简单说明一下. 什么是知识库 知识库(Knowledge Base)是知识工程中结构化,易操作,易利用,全面有 ...

  2. 通过低代码平台搭建客服管理系统,解决管理难题

    编者按:如何解决客服管理问题?一套充分满足企业自身需求的客服系统是智选,那么该选用什么样的平台来实现呢?一般具有哪些功能模块? 关键词:低代码,定制化,客服系统 随着互联网技术的发展,我国电商已经发展 ...

  3. 呼叫中心电话客服系统搭建的种类有哪些

    电话沟通密集的企业大部分采用了呼叫中心电话客服系统,电话客服搭建的专业呼叫中心系统提高了客户与企业的沟通效率和频率,但是目前很多企业不太了解电话客服软件有多少种类别,也不了解每个类别的详细功能,我们将 ...

  4. 呼叫中心电话客服系统搭建的种类除了OKCC外还有哪些?

    电话沟通密集的企业大部分采用了呼叫中心电话客服系统,电话客服搭建的专业呼叫中心系统提高了客户与企业的沟通效率和频率,但是目前很多企业不太了解电话客服软件有多少种类别,也不了解每个类别的详细功能,我们将 ...

  5. Chatopera 王海良:做好开源客服系统

    | 作者:王海良 | 编辑:刘雪洁 | 设计:马丽娜 | 责编:王玥敏 做好开源客服系统,是我最近的心心念念的事情之一.我想讲的故事,就包括春松客服,一个开源的客服系统.篇章有限,我想从三点来说明,为 ...

  6. wolive-在线客服系统源码_如何搭建在线客服系统?

    在线客服为企业和客户提供了即时沟通的平台,可以接入网页.APP.微博.微信等多种渠道.企业要如何搭建在线客服系统呢? (一)确认需求和预算 在决定搭建在线客服系统之前,企业要确认自身业务需求,主要是售 ...

  7. 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布...

    之前的章节我们介绍了如何通过dapr发起一个服务调用,相信看过前几章的小伙伴已经对dapr有一个基本的了解了,今天我们来聊一聊dapr的另外一个功能--订阅发布 目录: 一.通过Dapr实现一个简单的 ...

  8. 一步一步教你在 Android 里创建自己的账号系统(一)

    大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 大家在 ...

  9. 华为p4支持鸿蒙功能吗_吹过的牛都一步一步给实现了!明年华为手机支持升级鸿蒙系统!...

    12月16日,华为举行 HarmonyOS 2.0 手机开发者 Beta 活动,现场正式发布了 HarmonyOS 2.0 手机开发者 Beta 版本.据悉,本次 HarmonyOS 2.0 公测设备 ...

最新文章

  1. vue项目通过命令行传参实现多环境配置(基于@vue/cli)
  2. PHP-fpm 优化问题
  3. 解决IE8下载停留在99%的脚本
  4. bzoj4427【Nwerc2015】Cleaning Pipes清理管道
  5. WeChat小程序授权机制踩坑请求头中设置cookie保持session
  6. hm编码工具使用_H.265视频编码与技术全析(下)
  7. android 5.0新增 ui 控件,android3.0新增ui控件示例说明.doc
  8. azure机器学习_如何在Azure机器学习中使用JSON数据
  9. eureka 客户端服务启动了又失败了_SpringCloud-Eureka(2)
  10. 推荐一款个人感觉比较舒服的idea主题
  11. 程序员:我终于知道post和get的区别
  12. AutoCAD启动缓慢
  13. 练就超强记忆力,成为最强大脑【完结】
  14. M26模块TCP透传数据流程笔记
  15. pdf转换html器 免费版,pdf转换成html转换器
  16. mac安装phpunit
  17. C# 文字识别(OCR)
  18. excel表格排序,4种排序教程全都有
  19. final修饰的变量
  20. vue.js实现一键copy功能

热门文章

  1. python绘制散点图的步骤_python如何绘制散点图?
  2. mysql 自定义序列号_在mysql中怎样设置,才能自动添加序列号
  3. java环境变量一闪而过_Java环境变量配置和Tomcat启动时cmd界面一闪而过问题
  4. 安装mysql5 1步骤_Linux系统安装MySQL详细步骤(mysql-5.1等)
  5. 【Java基础篇】集合排序
  6. 【JAVA基础篇】反射
  7. zzulioj1111: 多个整数的逆序输出(函数专题)
  8. 《团队激励与沟通》第 8 讲——团队合作技巧 重点部分总结
  9. PHP能在Mac上运行吗,PHP Composer无法在Mac上运行
  10. Linux16.04和Windows 10双系统下,解决时间不一致问题