如何使用节点js将消息从Web服务器推送到浏览器 [英] how to push a message from web server to browser using node js

查看:40
本文介绍了如何使用节点js将消息从Web服务器推送到浏览器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.min.js"></script>

<script type="text/javascript" >
$(document).ready(function()
{
$("#notificationLink").click(function()
{
$("#notificationContainer").fadeToggle(300);
$("#notification_count").fadeOut("slow");
return false;
});

//Document Click
$(document).click(function()
{
$("#notificationContainer").hide();
});
//Popup Click
$("#notificationContainer").click(function()
{
return false
});

});
</script>
<style>
body{background-color:#dedede;font-family:arial}
#nav{list-style:none;margin: 0px;
padding: 0px;}
#nav li {
float: left;
margin-right: 20px;
font-size: 14px;
font-weight:bold;
}
#nav li a{color:#333333;text-decoration:none}
#nav li a:hover{color:#006699;text-decoration:none}
#notification_li{position:relative}
#notificationContainer {
background-color: #fff;
border: 1px solid rgba(100, 100, 100, .4);
-webkit-box-shadow: 0 3px 8px rgba(0, 0, 0, .25);
overflow: visible;
position: absolute;
top: 30px;
margin-left: -170px;
width: 400px;
z-index: -1;
display: none;
}


#notificationsBody {
padding: 33px 0px 0px 0px !important;
min-height:300px;
}

#notification_count {
padding: 3px 7px 3px 7px;
background: #cc0000;
color: #ffffff;
font-weight: bold;
margin-left: 100px;
border-radius: 9px;
position: absolute;
margin-top: 0px;
font-size: 11px;
}
</style>
</head>

<body >
<div style="margin:0 auto;width:900px; margin-top: 30px;">
<ul id="nav">

<li id="notification_li">
<span id="notification_count">5</span>
<a href="#" id="notificationLink">Notifications</a>
<div id="notificationContainer">
<div id="notificationTitle">Notifications</div>
<div id="notificationsBody" class="notifications">
</div>

</div>
</li>
</ul>

</div>

</body>
</html>

我正在处理一个从服务器获取通知的页面.我只是创建一个按钮和一个小div以显示通知号.当服务器推送到该div时,我想使该div从服务器获取通知.如何从服务器获取推送通知.我想要用于接收来自服务器的通知的客户端代码.我只是使用另一个系统,而节点js是服务器.

I am working on a page that has getting the notification from the server. I just create a button and a small div for showing notification number. I want to make that div was getting the notification from the server when the server push to that div. How can I get the push notification from the server. I want the client side code for receiving notification from sever. I just using another system and node js is the server.

谢谢.

推荐答案

您可以使用节点js来实现.以下是一个工作代码示例. Node js:index.js

You can achieve it using node js. Following is a working code example. Node js : index.js

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get("/", function (req, res) {
    res.sendFile("index.html", {root: __dirname});
});
io.on("connection", function (socket) {
    socket.on("notify", function (notification_request) {
        io.emit('notify', JSON.stringify(notification_request));
    });
});
http.listen(3000, function () {
    console.log('listenting on 3000');
});

您的前端index.html在</body>

your frontent index.html before </body>

<script>
    var socket = io();
    $('button').click(function () { //notify event triggered
        socket.emit('notify', {notification-1: "message1", notification-2: "message2", notification-3: "message3"});
        return false;
    });
    socket.on('notify', function (notification) {
        var notifications = JSON.parse(notification); //process notication array
        $('#notification-div').append(notifications); //display the notification here which is going to be reflected for all clients
    });
</script>

在终端或CLI上运行index.js文件以激活服务器.并且不要忘记安装以下节点模块

Run your index.js file on terminal or CLI to activate server. And Don't forget to install following node modules

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

这篇关于如何使用节点js将消息从Web服务器推送到浏览器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆