使用 t-io 案例进行在线客服开发(一)


       因为公司业务有需求建立自己的客服系统体系。在网上寻找了很多资料,因为之前一直做传统系统没有进行过这种形式的网络编程。对SOCKET的理解也仅仅是理论层面的。最后选择使用 TYW大神的t-io 进行这个开发。考虑到t-io现在是进行文档收费的方式。其实是可以理解的。毕竟技术的价值很难量化。而技术也需要更多的钱才能发展的更好。这是一个互相促进的过程。我觉着无可厚非。我选择尊重作者。买了文档的使用权,同样也是为了有更多更好好的技术交流圈子。支持TYW大神。废话不多说了。直接上关键代码和我的思路。

       第一步:下载t-io   https://gitee.com/tywo45/tio-websocket-showcase (码云里的地址)

       第二步:项目集成。牵扯到有可能需要用到各种业务处理。先引入 t-io socket  这里选择了最新的版本。

<dependency>
<groupId>org.t-io</groupId>
<artifactId>tio-websocket-server</artifactId>
<version>3.2.9.v20190401-RELEASE</version>
</dependency>
第三步:由于我的项目里只用到他的web-socket这部分的代码。所以我直接把这部分代码拿过来。

在ShowCaseWebSocketStarter 这个类里面有启动类。因为我们的项目是基于springboot 所以我直接把启动的代码拿到springboot启动类里面和它一起启动。

 

第四步:将示例项目的页面和相关的静态文件放在项目中。然后调用访问页面 index.html 由于之前的项目页面是springmvc jsp 所以把页面拿过来改成JSP。方便后续传值。

第五步:修改 im.js 

function initWs (clientuser) {
myid=clientuser.id;
var queryString = 'id='+clientuser.id+'&name='+clientuser.username+'&type='+clientuser.type+"&targetId="+clientuser.targetId;
var param = "";
tiows = new tio.ws(ws_protocol, ip, port, queryString, param, handler, heartbeatTimeout, reconnInterval, binaryType)
tiows.connect()
}
这里根据我的实际业务加了一些参数。执行这个init方法主要是客户端的握手阶段。也就是对应着来到了后端方法的 Handler 的这个 方法

在这里你可以进行自己的业务处理。最关键的参数对象就是客户端的长连接对象。 

channelContext,可以使用tio的绑定方法将他绑定到用户。业务,群组等等。代码里写的很清楚这里就不一一列举了。
如果需要保存上下文数据只需要

注意这里使用有参数的方法。无参数的方法有特殊的用处。不建议使用。

第六步:测试发送消息。可以根据实际业务自由的控制发送消息的接收方。主要是通过绑定用户业务,比如这里绑定到群组。

则群发的时候就可以这样

其他绑定方法都一样。

第七步:业务结束处理。比如可以在聊天结束后将聊天记录保存至数据库。这里我做了判断。只有客户关闭客户端的时候进行保存。使用MAP保存了用户和客服的对应列表。因为了解不到别人是如何做的。这个方法是我想到的比较好的实现了。

总结:t-io的调用方便。能节省开发时间。据了解在高并发和性能方面都是比较好的。灵活的绑定发送功能是亮点。为我们提供了很多可借鉴的思路。感谢TYW大神为我们提供了这么好用的框架。后续会进行更新。第一次写这种博客。请大家多多拍砖。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM