第一次发博文,水平有限,供自己记录学习 和 各位交流研究
1.安装nodejs
下载nodejs,选择并下载与自己操作系统相匹配的版本。
点击安装文件,然后一直点next就可以,最后点击finish,大功告成。
各位不懂,可以参考binyao02123202写的windows下node.js安装教程图文详解
2.下载nodejs-websocket
打开cmd,然后将路径指向项目路径,然后输入 npm install nodejs-websocket
下载完成:
如果无法下载并报如下错误,解决办法:在目录
下新建一个名为npm文件(注意:没有后缀名!!!,不同的电脑路径不一致,懂大致意思就行)
如果完成以上两步,恭喜!!已经准备好实现websocket的环境了~~~
项目目录结构:
3.编码
①服务器端代码
server.js
<span style="font-size:14px;">var http = require("http");
var ws = require("nodejs-websocket");
var fs = require("fs");
var server = ws.createServer(function (conn) {
console.log("connection sussess");
conn.on("text", function (str) {
server.connections.forEach(function (connection) {
connection.sendText(str);
});
});
});
server.listen(8080);//设置服务器端口</span>
②客户端代码
client.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="gbk">
<title>ChatRoom</title>
<script>
var ws = null;
function getWs() {
//ws = new WebSocket("ws://"+window.location.hostname+":8080");/ip访问
ws = new WebSocket("ws://127.0.0.1:8080");//本地访问
ws.onopen = function () {
console.log("ws open");
}
ws.onmessage = function (event) {
var div = document.createElement("div");
div.textContent = event.data;
document.body.appendChild(div);
}
ws.onclose = function () {
console.log("ws close");
}
ws.onerror = function () {
console.error("ws error");
}
}
function sendWs(){
var msg = document.getElementById("msg");
if(msg.value == ''){
alert('聊天内容不能为空');
} else {
var date = new Date();
var time = date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
ws.send("["+time+"] "+msg.value);
msg.value = '';
}
}
</script>
</head>
<body οnlοad="getWs()">
<input size="50" id="msg" placeholder="请输入聊天内容">
<input type="submit" value="发送" id="show" οnclick="sendWs()">
</body>
</html>
4.运行
①运行服务端
在项目路径下运行该指令 node server.js
②运行服务端
在浏览器中打开客户端
放到Apache等Web服务器软件中,可以通过ip或域名访问客户端
5.结果
若对代码有疑问,可另参考nodejs-websocket中的例子--chat
至此websocket就真正的实现!!!
附:代码 ~~