當前位置:首頁 » 網頁前端 » 後端如何主動向前端發送消息
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

後端如何主動向前端發送消息

發布時間: 2022-04-17 13:36:36

⑴ JAVA後台 關於如何從後台傳遞信息在jsp前端

一般使用兩種方式,一種是servlet的轉發或重定向跳轉頁面,並將信息攜帶過去,另一種方式是ajax請求後台介面,後台介面進行處理之後將信息返回給介面調用者。

⑵ 網站後台如何主動將信息推送到網站前台或者說網站前台如何實時知道網站後台的數據被更新了

ajax技術

⑶ 前端消息推送怎麼實現

前端消息推送主要有兩種方式:

1、輪詢方式(PULL):主動去拉取消息,客戶端和伺服器定期的建立連接,通過消息隊列等方式來獲取是否有新的消息。

2、長連接方式(PUSH):它是基於TCP長連接實現,客戶端和伺服器建立TCP長連接之後,客戶端定期向伺服器發送心跳包用於保持連接,有消息的時候,伺服器直接通過這個已經建立好的TCP連接通知客戶端。

目前應用最為廣泛的第三方推送服務提供商包括極光等第三方服務,絕大部分APP都會優先考慮採用第三方推送服務。

實現前端端消息推送可以選擇極光,極光是中國領先的開發者服務提供商,專注於為開發者提供穩定高效的消息推送、一鍵認證以及流量變現等服務,助力開發者的運營、增長與變現。同時,極光的行業應用已經拓展至市場洞察、金融風控與商業地理服務,助力各行各業優化決策、提升效率。

⑷ 如何在php後端及時推送消息給客戶端

後端代碼
push.php
<?php
use Workerman\Worker;
require_once './Workerman/Autoloader.php';
// 初始化一個worker容器,監聽1234埠
$worker = new Worker('websocket://0.0.0.0:1234');
// 這里進程數必須設置為1
$worker->count = 1;
// worker進程啟動後建立一個內部通訊埠
$worker->onWorkerStart = function($worker)
{
// 開啟一個內部埠,方便內部系統推送數據,Text協議格式 文本+換行符
$inner_text_worker = new Worker('Text://0.0.0.0:5678');
$inner_text_worker->onMessage = function($connection, $buffer)
{
global $worker;
// $data數組格式,裡面有uid,表示向那個uid的頁面推送數據
$data = json_decode($buffer, true);
$uid = $data['uid'];
// 通過workerman,向uid的頁面推送數據
$ret = sendMessageByUid($uid, $buffer);
// 返回推送結果
$connection->send($ret ? 'ok' : 'fail');
};
$inner_text_worker->listen();
};
// 新增加一個屬性,用來保存uid到connection的映射
$worker->uidConnections = array();
// 當有客戶端發來消息時執行的回調函數
$worker->onMessage = function($connection, $data)use($worker)
{
// 判斷當前客戶端是否已經驗證,既是否設置了uid
if(!isset($connection->uid))
{
// 沒驗證的話把第一個包當做uid(這里為了方便演示,沒做真正的驗證)
$connection->uid = $data;
/* 保存uid到connection的映射,這樣可以方便的通過uid查找connection,
* 實現針對特定uid推送數據
*/
$worker->uidConnections[$connection->uid] = $connection;
return;
}
};

// 當有客戶端連接斷開時
$worker->onClose = function($connection)use($worker)
{
global $worker;
if(isset($connection->uid))
{
// 連接斷開時刪除映射
unset($worker->uidConnections[$connection->uid]);
}
};

// 向所有驗證的用戶推送數據
function broadcast($message)
{
global $worker;
foreach($worker->uidConnections as $connection)
{
$connection->send($message);
}
}

// 針對uid推送數據
function sendMessageByUid($uid, $message)
{
global $worker;
if(isset($worker->uidConnections[$uid]))
{
$connection = $worker->uidConnections[$uid];
$connection->send($message);
return true;
}
return false;
}

// 運行所有的worker(其實當前只定義了一個)
Worker::runAll();

啟動後端服務
php push.php start -d

前端接收推送的js代碼
var ws = new WebSocket('ws://127.0.0.1:1234');
ws.onopen = function(){
var uid = 'uid1';
ws.send(uid);
};
ws.onmessage = function(e){
alert(e.data);
};
後端推送消息的代碼

// 建立socket連接到內部推送埠
$client = stream_socket_client('tcp://127.0.0.1:5678', $errno, $errmsg, 1, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT);
// 推送的數據,包含uid欄位,表示是給這個uid推送
$data = array('uid'=>'uid1', 'percent'=>'88%');
// 發送數據,注意5678埠是Text協議的埠,Text協議需要在數據末尾加上換行符
fwrite($client, json_encode($data)."\n");
// 讀取推送結果
echo fread($client, 8192);
這里的uid不一定是用戶的id,也可以理解為任務id即 taskid

⑸ java如何推送消息給前端

Java伺服器推送消息給前端主要方法:
Java有兩個介面:
1、"/subscribe"介面:用於消息訂閱,該介面有一個參數topic,即訂閱的消息主題。
2、"/publish"介面:發布消息介面,有兩個參數,topic是發布消息主題,content是發布消息內容。
用戶還可考慮使用用極光推送,JPush 提供四種消息形式:通知,自定義消息,富媒體和本地通知。
1、通知,或者說 Push Notification,即指在手機的通知欄(狀態欄)上會顯示的一條通知信息。 通知主要用來達到提示用戶的目的,應用於新聞內容、促銷活動、產品信息、版本更新提醒、訂單狀態提醒等多種場景;
2、自定義消息:自定義消息不是通知,所以不會被 SDK 展示到通知欄上。其內容完全由開發者自己定義。 自定義消息主要用於應用的內部業務邏輯。一條自定義消息推送過來,有可能沒有任何界面顯示。
3、富媒體:JPush 支持開發者發送圖文並茂的通知,從而更好的傳達信息,帶來更豐富的用戶互動。 JPush 提供了 5 種模板,開發者可以通過填充模板的內容,發送 landing page、彈窗、信息流形式的富媒體通知。 開發者還可以直接通過 URL 發送預先編輯好的頁面。
4、本地通知:本地通知 API 不依賴於網路,無網條件下依舊可以觸發;本地通知的定時時間是自發送時算起的,不受中間關機等操作的影響。 本地通知與網路推送的通知是相互獨立的,不受保留最近通知條數上限的限制。
極光推送還可以通過使用標簽,別名,Registration ID 和用戶分群,開發者可以向特定的一個或多個用戶推送消息。

⑹ 前端 消息推送是怎麼實現的

主要介紹其中的五種實現方式:短輪詢、Comet、Flash XMLSocket、Server-sent、WebSocket
1、短輪詢
指在特定的的時間間隔(如每10秒),由瀏覽器對伺服器發出HTTP request,然後由伺服器返回最新的數據給客戶端的瀏覽器。瀏覽器做處理後進行顯示。無論後端此時是否有新的消息產生,都會進行響應
2、Comet
包括了長輪詢和長連接,長輪詢是客戶端向伺服器發送Ajax請求,伺服器接到請求後hold住連接,直到有新消息才返回響應信息並關閉連接,客戶端處理完響應信息後再向伺服器發送新的請求;長連接是在頁面中的iframe發送請求到服務端,服務端hold住請求並不斷將需要返回前端的數據封裝成調用javascript函數的形式響應到前端,前端不斷收到響應並處理
3、Flash XMLSocket
在 HTML 頁面中內嵌入一個使用了 XMLSocket 類的 Flash 程序。JavaScript 通過調用此 Flash 程序提供的socket介面與伺服器端的socket進行通信。JavaScript 在收到伺服器端以 XML 格式傳送的信息後可以很容易地控制 HTML 頁面的內容顯示
4、Server-sent
伺服器推指的是HTML5規范中提供的服務端事件EventSource,瀏覽器在實現了該規范的前提下創建一個EventSource連接後,便可收到服務端的發送的消息,實現一個單向通信。客戶端進行監聽,並對響應的信息處理顯示
5、WebSocket
WebSocket是HTML5下一種新的協議,是基於TCP的應用層協議,只需要一次連接,便可以實現全雙工通信,客戶端和服務端可以相互主動發送消息。客戶端進行監聽,並對響應的消息處理顯示
針對自己系統的應用場景選擇合適的推送方案才是合理的,因此最後簡單說一下實現個性化推送的兩種方式。第一種很簡單,直接使用第三方實現的推送,無需復雜的開發運維,直接可以使用。第二種就是自己封裝,可以選擇如今較為火熱的WebSocket來實現系統的推送。
關於第三方推送平台,極光推送,操作簡單,穩定性高,送達率快

⑺ java後台消息推送到前台的問題

如何推送到前台頁面?
用Ajax就可以了啊,記錄現在答題的題號,如果正確,則查出下一題號對應的題目,print到頁面就可以了!!

控制所有用戶同時跳轉頁面
這個還真不清楚,嚴重關注!

⑻ PHP怎麼從後端及時向前段發出提示

使用http協議的話只能是前端主動向後端發請求。後端不能主動向前端發送提示。要及時得到後台的狀態,只能用長輪詢,就是前端定時向後台請求數據……或者HTML5有個websocket可以雙向通信,題主可以查查。。。