网络通信webSocket(一)原理

对于开发者的我来讲,大部分项目都需要用到聊天功能,例如单聊,群聊,分组,通信等。而这一切都基于socket,那具体socket指的是啥?下面就具体好好写写吧。

要了解什么是socket,得先掌握TCP/IP协议与Http协议。

首先Http协议,是超文本传输协议,没有状态的,也是属于短链接对应于应用层;而Tcp/IP协议呢,分别作用于传输层、网络层,对数据进行传输,是一种长连接。

对于socket来讲,是用来封装TCP/IP协议的,socket是一种编程接口,通过使用这一协议,可以用来传输数据;

而http协议,需要采用“请求-响应”的方式进行数据的传输。

Socket严格来讲,是一种长连接,它的连接分为三个步骤:

1、服务端监听:时刻处于监听的状态;2、客户端请求:需要提供地址与端口,向server端提出连接请求;3、连接确认:当client端提出请求之后,server端进行响应请求,建立一个新的进程,将响应信息发给client端,client确认响应信息,就正式建立连接。

var ws = new WebSocket("wss://echo.websocket.org");  //创建socket实例

ws.onopen = function(evt) {      //连接socket成功后的回调信息
  console.log("Connection open ..."); 
  ws.send("Hello WebSockets!");
};

ws.onmessage = function(evt) {     //接收数据后的回调信息
  console.log( "Received Message: " + evt.data);
  ws.close();
};

ws.onclose = function(evt) {    //关闭socket进程后的回调信息
  console.log("Connection closed.");
}; 

webSocket API

· new Socket   // 实例socket

var ws = new WebSocket("wss://echo.websocket.org");

· webSocket.readyState   // 返回实例socket的状态

switch (ws.readyState) {
  case WebSocket.CONNECTING:
    // do something
    break;
}

· webSocket.onopen   // 连接socket成功后的回调

ws.onopen = function () {
  ws.send('Hello Server!');
}

· webSocket.onclose   // 关闭socket后的回调

ws.onclose = function(event) { 
  // handle close event
};

· webSocket.onmessage  // 指定接收数据后的回调

ws.onmessage = function(event) {
  var data = event.data;
  // 处理数据
};

· webSocket.send  //向server端传递数据 

ws.send('your message');

· webSocket.onerror  //指定错误的回调   

socket.onerror = function(event) {
  // handle error event
};

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值