首先是先安装socket.io:npm install socket.io
然后在node项目目录里新建一个js文件,命名随意,我是app.js,放入如下代码:
var app = require(‘http’).createServer(handler);
var io = require(‘socket.io’)(app);
var fs = require(‘fs’);
app.listen(90);
function handler (req, res) {
fs.readFile(__dirname + ‘/index.html’,
function (err, data) {
if (err) {
res.writeHead(500);
return res.end(‘Error loading index.html’);
}
res.writeHead(200);
res.end(data);
});
}
io.on(‘connection’, function (socket) {
socket.on(‘setContent’, function (data) { //接收客户端发来的信息
console.log(data+”from client”); //服务器端输出
io.sockets.emit(‘getContent’,data);//给所有客户端广播消息
socket.broadcast.emit(‘getContent’, data); //向出自己之外的其他客户端发送信息
socket.emit(‘getContent’, data); //向自己客户端发送信息
});
});
然后再放入一个index.html文件,代码如下:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<title> New Document </title>
<meta name=”Generator” content=”EditPlus”>
<meta name=”Author” content=””>
<meta name=”Keywords” content=””>
<meta name=”Description” content=””>
<script type=’text/javascript’ src=’http://web.zhaicool.net/wp-content/themes/xiu/js/jquery.js?ver=1.1′></script>
<script src=”/socket.io/socket.io.js”></script>
<script>
var socket = io(‘ws://localhost:90’); //var socket = io(“http://localhost:90”);
socket.on(‘getContent’, function(data) { //接受服务器发来信息
domHtmlInfo(data);
});
function setConToService(data) {
socket.emit(‘setContent’, data); //向服务器发送信息
}
function domHtmlInfo(data) { //接受服务器发来信息
$(“body”).append(data + “<br>”);
}
$(document).ready(function() {
$(“button”).on(“click”, function() {
setConToService($(“#str”).val());
$(“#str”).val(“”);
});
});
</script>
</head>
<body>
<input type=”text” id=”str”>
<button>submit</button>
</body>
</html>
然后运行项目,多打开几个浏览器,就可以测试即时通信了。
以上代码仅是我借鉴网上教程整理出来的核心代码,请谨慎使用。
未经允许不得转载:前端撸码笔记 » 自己整理的一段node.js结合socket.io创建的web即时通信代码