WebSocket 入门 第二课(学习笔记)

上一笔记说道 想要连接远程服务器,需要一个新的websocket实例,并且需要为websocket提供一个URL,上一笔记最后的模拟到的小例子用到是 不是自己的URL。

此次介绍,在本地搭建一个server。

首先搭建本地的 websocket server 需要用nodeJS中的一个版块----nodejs-websocket.

这个版块是啥呢?

我也不知道,会会用就行。。。。。

怎么用呢?看下面 !!!!

首先,不用说我们要用到node,所以我就给自己建一个package.json方便。。。

1、npm init --->创建package.json

2、npm install nodejs-websocket --->安装nodejs-websocket模板

3、建立入口文件 ,与package.json一致

4、引入安装的nodejs-websocket模块

var ws = require("nodejs-websocket")

顺便总结一下常用的函数/事件:

ws.createServer 建立一个新的服务

ws.connect 返回一个新的connection对象,表示websocket客户端连接

server.listen 服务监听

server.close 服务关闭

事件:

Event: 'listening()' 事件监听 ,在调用server.listen后绑定服务器时发出

Event: 'close()' 服务器关闭时发出

Event: 'text(str)' 收到一串文字时发出

Event: 'error(errObj)' 发生错误时发出

Event: 'connection(conn)'成功建立新连接时(握手完成后)发出。conn是Connection的一个实例

5、用以上总结的函数/事件 创建一个服务,

var server = ws.createServer(functio (conn){

//参数 conn 就代表服务的连接

console.log("New connection")

})

 

6、监听这个服务,两种方法

一、    server.listen(8001)//8001 为端口号

二、 

         var server = ws.createServer(functio (conn){

         //参数 conn 就代表服务的连接

        console.log("New connection")

       }).listen(8001)//直接在回调函数监听

7、用事件实现 接收到一串小写字符串,返回大写字符串

var server = ws.createServer(functio (conn){

//参数 conn 就代表服务的连接

console.log("New connection")

//接收字符串

conn.on('text',function(str){

//返回处理后的字符串

conn.sendText(str.toUpperCase()+"!!!")

})

//服务关闭

conn.on("close", function (code, reason) {

console.log("Connection closed")

})

//服务报错监听

conn.on("error",function(err){

console.log("handle err",err)

})

}).listen(8001)

 

 

ok 用以上建立的本地服务代替上一次项目中他人的URL

 

代码整理:

//index.html

//注意WebSocket的URL已改为本地

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>简单小例子</title>

</head>

<body>

<input type="text" id="inMessage"><button id="sendMessage">发送</button>

<div id="showText"></div>

<script>

var liwebsocket = new WebSocket("ws://localhost:8001/");

liwebsocket.onopen = function () {

console.log("websocket is open")

// 当打开websocket是,使div的暂未websocket is open

document.getElementById("showText").innerHTML = "websocket is open!!!";

}

// 打开之后先接受一下输入框中的信息 并展示在 div中

liwebsocket.onmessage = function (e) {

document.getElementById("showText").innerHTML = e.data;

}

// 向websocket发送输入框信息

document.getElementById("sendMessage").onclick = function () {

//先获取发送的内容

var textValue = document.getElementById("inMessage").value;

// 发送

liwebsocket.send(textValue);

}

// 最后不要忘记关闭

liwebsocket.onclose = function () {

console.log("websocket is close!!!!");

}

</script>

</body>

</html>

 

// index.js 入口文件

var ws = require("nodejs-websocket")

 

var server = ws.createServer(functio (conn){

//参数 conn 就代表服务的连接

console.log("New connection")

//接收字符串

conn.on('text',function(str){

//返回处理后的字符串

conn.sendText(str.toUpperCase()+"!!!")

})

//服务关闭

conn.on("close", function (code, reason) {

console.log("Connection closed")

})

//服务报错监听

conn.on("error",function(err){

console.log("handle err",err)

})

}).listen(8001)

 

ok!!!!!

附上:GitHub上 对nodejs-websocket 的详细介绍

https://github.com/sitegui/nodejs-websocket#event-errorerr

 

看着学,看着用

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值