返回主站|会员中心|保存桌面|手机浏览

《科技资讯》杂志

杂志等级
    期刊级别:国家级期刊 收录期刊:知网收录(中) 维普收录(中) 万方收录(中) 国家图书馆馆藏 上海图书馆馆藏
本刊往期
站内搜索
 
友情链接
  • 暂无链接
首页 > 杂志论文 > WebSocket协议在电商平台中的应用
杂志文章正文
WebSocket协议在电商平台中的应用
发布时间:2018-12-03        浏览次数:14        返回列表

唐淑华 王遵义

摘 要:在飞速发展的现代社会,及时、有效、准确的信息传送对各行各业发展尤为重要。B2C模式下的电商企业,客户满意度显著的影响着它的发展,提高客户的消费体验十分必要,因此,准确、有效、及时的信息传送就显得尤为重要。传统的基于HTTP协议的单向信息传送方式已无法满足人们的需求,社会需要更加高效的方式。而WebSocket协议是一种典型的双向通信协议,它與HTTP一样是通过TCP来传输数据,与HTTP不同的是,WebSocket协议的客户端与服务端在一次握手成功后就可以无数次进行数据的发送与接收,极大限度地保证了信息的时效性。

关键词:客户满意度 WebSocket协议 数据传输 双向通信

中图分类号:TP311.5 文献标识码:A 文章编号:1672-3791(2018)04(a)-0020-02

电商行业经过多年的发展,如今已进入一个全面发展的阶段。网购成为很多人的一个消费习惯,甚至成为一种生活乐趣。但是网购过程中我们也经常遇到一些问题,典型的一个就是缺货问题。想买的东西断货了,什么时候到货也不确定,也没有提醒。WebSocket技术能有效解决上述问题。

1 WebSocket协议介绍

WebSocket技术实现了信息的双向通信,能够有效应对如今信息传输不及时的问题。由于WebSocket技术是一项比较新的技术,它的应用相对较少,相关资料也比较缺乏,美国Danny Coward的《Java WebSocket编程》就比较详细地介绍了该技术,相关资料还有赵振等主编的《Web异步与实时交互iframe AJAX WebSocket 开发实战》等。随着信息技术以及社会去求得发展,相信很快WebSocket技术就会大范围的应用,在现实社会中发挥更大的作用。

WebSocket协议与Http协议存着差异。基于HTTP协议的Web应用是一种无状态单向的协议,它是由客户端主动发起握手请求,建立连接。然而很多情况下服务端才是信息的发布者,这就产生了矛盾,信息更新时间不确定,当出现新的信息,服务器却不能主动发送,导致了信息的延缓。为解决这类问题,也提出了“轮询”的方式来获得最新的信息,但是这样占用了大量的带宽,并且每次发送请求都会携带大量的协议头信息,造成资源浪费。ajax轮询、long poll都不能有效解决该问题。ajax轮询的原理是让浏览器每隔个几秒发送一次请求,询问服务器是否有新信息。long poll原理与ajax轮询相似,也是采用轮询的方式,不同的是long poll采取的是阻塞模型,即客户端发起连接后,如果没有消息产生,就不返回response给客户端,直到有消息才返回,返回之后,客户端再次建立连接。为解决这类问题,很多其他的协议陆续出现,WebSocket协议就是典型的异步全双工通信机制,它实现了服务端与客户端的双向通道[1]。

相较于HTTP协议,WebSocket协议能够节省很多不必要的流量,减少占用网络资源,减少信息的延缓同时节约了服务器资源。WebSocket协议仅需一次握手,当连接完成,服务端与客户端就可以自由发送数据、信息,直至TCP关闭握手。

2 WebSocket事件、方法

WebSocket对象可以触发4种事件,在建立连接后触发open事件,客户端在收到服务端发送的数据时触发message事件,在通信过程中如发生错误是触发error事件,在连接关闭时触发close事件[2]。

WebSocket对象有发送数据的send()方法和关闭连接的close()方法。send()方法是在服务端和客户端建立连接后调用,close()是在数据传送结束调用。

2.1 WebSocket案例

WebSocket最常见的案例是聊天室系统。客户端部分,使用Chat.socket.onopen()触发onopen事件建立连接,用send方法将message对象发送至服务端。程序运行过程中,首先调用Chat.initialize()函数判断该传输协议的类型是https还是http,https协议是由SSL+HTTP协议构建的,相较于http更加安全。接下来还需要判断所用浏览器是否支持WebSocket,最早支持WebSocket协议的浏览器应该是chrome,而目前流行的浏览器基本能够支持WebSocket协议,例如:Chrome、Firefox、IE等,该判断方法是调用Chat.connect(host)。信息的发送以及接收调用了Chat.sendMessage()、Chat.socket.onmessage()方法。最后调用Chat.socket.onclose()方法触发onclose事件关闭连接。这里并未用到onerror事件,@onerror一般可以用来注解WebSocket端点的方法,使得它能够处理WebSocket实现处理入站消息时发生的任何的错误[2]。前台要用WebSocket连接到后台,需要新建一个WebSocket对象,然后就可以和服务器端进行交互,也就是浏览器发送消息给服务器端,同时要验证输入框的内容是否为空,然后接受服务端发送的消息,把它动态地添加到聊天框中。

服务端部分,首先定义一个WebSocket服务端。value

作为访问地址。本个例子中:客户端连接到服务端,Set connections用于存储聊天室中的连接实例。@OnOpen,连接创建时调用的方法,@OnClose,连接关闭时调用的方法,@OnMessage,传输信息过程中调用的方法,@OnError,发生错误时调用的方法。broadcast(String msg),通过connections,对所有其他用户推送信息的方法[3]。

2.2 WebSocket协议在电商平台中的应用

就WebSocket协议的特点,提出以电商平台为背景,进行信息的主动传递。当客户看中某个商品,商家断货了,此时客户可使用到货提醒按钮。同时服务器会将该用户的操作存入数据库,当该商品再次上架,库存大于0,立刻向用户发送多次的提醒。这里的客户端可以是网页也可以是安卓用户,服务器主动发送提醒的操作就是使用WebSocket协议。实验过程如图1所示,实验结果如图2所示。可以看出当用户忘记或者忽略了提醒,服务器可以多次不断提醒用户信息,直到商品再次售完或者用户关闭了此提醒。

使用WebSocket协议的这一设计,一来可以节约带宽、流量的成本,二来其实时性高于普通的协议,能够及时有效地提醒客户,提高客户满意度,促进商品的销售,有利于企业的发展。

虽然部分浏览器还不支持此协议,但随着信息技术的发展,实时技术的需求不断扩大,WebSocket协议所构建的应用程序必然会不断完善,风险性不断减低,WebSocket协议必将成为重要的、普遍的开发协议。

参考文献

[1] 聂开,张莎莎,王珏辉.WebSocket技术在Web端和服务端之间的应用[J].数字技术与应用,2016(7):77.

[2] (美)Danny Coward,著.Java WebSocket编程[M].刘建,夏先波,译.北京:清华大学出版社,2015:31-38.

[3] 赵振,王顺,于梦竹.Web异步与实时交互iframe AJAX WebSocket 开发实战[M].北京:人民邮电出版社,2016:72-80.