码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET MVC 结合NODEJS 实现推送

时间:2016-08-05 15:42:39      阅读:412      评论:0      收藏:0      [点我收藏+]

标签:

以前就一直想在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 });
View Code

 

推送方,如下:

$("#btnSend")
            .click(function () {
                var msg = $("#sendMsg").val();
                var socket = io.connect(127.0.0.1:1337);
                socket.emit(fromWebClient, msg);
            });

 

ASP.NET MVC 结合NODEJS 实现推送

标签:

原文地址:http://www.cnblogs.com/wzgj/p/5741046.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!