nodejs+nodejs-websocket 实现websocket

第一次发博文,水平有限,供自己记录学习 和 各位交流研究大笑


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就真正的实现!!!


附:代码 ~~









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值