标签:
以前就一直想在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