标签:
以前就一直想在Web上做个实时通讯的功能,直到最近才有时间,NodeJs确实是不错的选择。
在这里就不考虑美观的问题了,简单的输入推送消息,保证客户端能接收到推送消息,如图:
服务端,简单代码,参考如下:
//引入http模块 var Http = require(‘http‘); //端口号 var Port = process.env.port || 1337; //引入express模块 var Express = require(‘express‘), App = Express(), Server = Http.createServer(App), Io = require(‘socket.io‘).listen(Server); //引入socket.io模块 并绑定到服务器 Server.listen(Port); //输出服务启动 console.log(‘server started‘); //当前在线人数 var onlineCount = 0; var messages = []; //socket 部分 Io.on(‘connection‘, function (socket) { //叠加当前在线人数 onlineCount++; console.log(‘当前用户数量:‘ + onlineCount); //客户端断开连接 socket.on(‘disconnect‘, function () { if (onlineCount > 0) { //当前在线用户减一 onlineCount--; console.log(‘当前用户数量:‘ + onlineCount); } }); // 从客户端接收数据 socket.on(‘fromWebClient‘, function(webClientData) { console.log(webClientData); messages.push(webClientData); socket.broadcast.emit(‘pushToWebClient‘, { hello: webClientData }); }); //推送客户端 //socket.emit(‘pushToWebClient‘, { hello: ‘world‘ }); messages.forEach(function(msg) { socket.send(msg); }); });
客户端,简单代码参考:
1 var socket = io.connect(‘192.168.1.23:1337‘); 2 $(function () { 3 //从服务器接受数据 4 socket.on(‘pushToWebClient‘, function (data) { 5 alert(data.hello); 6 }); 7 });
推送方,如下:
$("#btnSend") .click(function () { var msg = $("#sendMsg").val(); var socket = io.connect(‘127.0.0.1:1337‘); socket.emit(‘fromWebClient‘, msg); });
标签:
原文地址:http://www.cnblogs.com/wzgj/p/5741046.html