上一笔记说道 想要连接远程服务器,需要一个新的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已改为本地
简单小例子 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!!!!");
}
// 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
看着学,看着用