线上环境websocket连接地址_Websocket介绍及聊天室demo

WebSocket

关于websocket的一个小demo,是聊天室,源代码地址:

聊天室的github源代码

websocket的背景

现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询或者long poll 。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。

websocket的特点

  • WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。
  • WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。
  • 在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
  • 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。

76ac0a987eb5bcca098200bf794655ee.png

Ajax轮询

ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。 场景再现: 客户端:啦啦啦,有没有新信息(Request) 服务端:没有(Response) 客户端:啦啦啦,有没有新消息(Request) 服务端:好啦好啦,有啦给你。(Response) 客户端:啦啦啦,有没有新消息(Request) 服务端:。。。。。没。。。。没。。。没有(Response) ---- loop

long poll

long poll 其实原理跟 ajax轮询 差不多,都是采用轮询的方式,不过采取的是阻塞模型(一直打电话,没收到就不挂电话),也就是说,客户端发起连接后,如果没消息,就一直不返回Response给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始。 场景再现: 客户端:啦啦啦,有没有新信息,没有的话就等有了才返回给我吧(Request) 服务端:额。。 等待到有消息的时候。。来 给你(Response) 客户端:啦啦啦,有没有新信息,没有的话就等有了才返回给我吧(Request) -loop

从上面可以看出其实这两种方式,都是在不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的另外一个特点,被动性。何为被动性呢,其实就是,服务端不能主动联系客户端,只能有客户端发起。

从上面很容易看出来,不管怎么样,上面这两种都是非常消耗资源的。 ajax轮询 需要服务器有很快的处理速度和资源。(速度) long poll 需要有很高的并发,也就是说同时接待客户的能力。(场地大小) 所以ajax轮询 和long poll 缺点非常明显。

websocket 与Http的关系

WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)

首先HTTP有1.1和1.0之说,也就是所谓的kee

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Vue3和WebSocket聊天,可以根据以下步骤进行实现: 1. 首先,创建一个Vue3的项目并安装Vue3和WebSocket的依赖。可以使用Vue CLI来创建项目,并使用npm或yarn来安装依赖。 2. 在Vue3的项目中,可以使用Vue的Composition API来处理WebSocket的逻辑。通过引入WebSocket库,可以在Vue组件中创建WebSocket实例,并使用其提供的方法进行连接、发送消息和接收消息。 3. 在Vue组件中,可以创建一个WebSocket连接,并在组件的生命周期钩子中进行连接的初始化。可以使用`onopen`事件监听连接是否成功,`onmessage`事件监听接收到的消息,以及`onclose`事件监听连接关闭的情况。 4. 在Vue组件中,可以定义发送消息的方法,将要发送的消息作为参数传入WebSocket的`send`方法。 5. 在Vue模板中,可以使用`v-for`指令来循环渲染消息列表,可以使用`v-model`指令来双向绑定输入框的内容,并在发送按钮上绑定发送消息的方法。 6. 可以在Vue组件中使用计算属性来对接收到的消息进行处理,例如格式化时间、过滤敏感词等。 7. 最后,可以在Vue组件中使用样式和布局来美化聊天的界面,例如设置消息框的样式、聊天框的大小等。 通过以上步骤,你可以实现一个基于Vue3和WebSocket聊天。这样的聊天可以实现实时通信,并且不需要轮询服务器,节省了资源并提高了效率。如果你需要更具体的代码示例和详细的配置说明,可以参考提供的使用Java和Vue2.0开发的WebSocket聊天Demo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值