① java web 怎麼實現新訂單提醒
一般來說推送都會嘗試去維持一個類似消息中心的角色 訂單服務通過某種機制通知消息中心 由消息中心統一調度生成消息 這個階段有很多辦法 消息隊列是其中之一 如果系統比較小甚至消息中心和訂單都是一個系統 直接調用或者使用以下觀察者模式就可以搞定 第二個階段是常規的開發都是由前台發起請求後台響應 現在要反轉過來 後台維持連接 最簡單的就是ajax輪詢 如果這個功能不是核心的話可以試試WebSocket 而如果後台是SpringMVC的話可以自然集成Sockjs進來 而對於大部分系統來說比較理想的設計就是消息中間件解耦訂單和消息中心 消息中心通過WebSocket來推送消息 此時消息中心是一個單獨的服務 就算炸了也不會影響主系統
② Java Web 伺服器的消息推送 幾種方案
1、輪詢
前端使用ajax不停的發起請求獲取想要的數據(最簡單也是最容易耗盡伺服器資源)
2、長連接
Websocket
使用Websocket進行消息推送
3、DWR
③ java web 項目 -- 如何在伺服器端主動發送信息到客戶端瀏覽器頁面,並在調用右下角彈出框中提示該信息。
關於請求,都是按照,客戶端->伺服器,然後伺服器在響應客服端。伺服器不會主動給客服端發請求。
對於你的想要的效果,如果是類似於即時通訊,你可以選擇 伺服器推送 技術,讓伺服器主動給客服端發送消息。 如果是用於郵件的更新,可以試試,輪循的方法,就是客服端設置自動刷新,隔一定的時間主動的去訪問伺服器。
然後在你的頁面,使用動態效果,去顯示提示,比如。設置一個div ,初始為hidden,設置position(具體哪個值,我忘了,你都找來試試嘛),然後,在寫個方法,當伺服器發來消息為你想要的時候,在設置div顯示
④ java實現提醒功能
實現提醒功能給你思路吧。
你可以寫單獨寫個線程監視是否有消息傳回,然後刷新頁面。至於怎麼刷新頁面其實很簡單,寫一個事件介面。然後UI頁面實現這個介面。有消息傳回的時候就刷新頁面。
至於系統托盤我給你一個我無聊寫的倒計時程序片段,其中有系統托盤。
/**
* 設置系統托盤圖標及快捷菜單
*/
private void setIcon(){
addWindowStateListener(new WindowStateListener() {
public void windowStateChanged(WindowEvent e) {
if (getState() == 1) {
setVisible(false);
}
}
});
if (SystemTray.isSupported()) {
tray = SystemTray.getSystemTray();
}
Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("china.gif"));
ActionListener defaultListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
if (e.getActionCommand().equals( "exit")) {
exit();
}
} catch (Exception ex) {
System.out.println("hehehe"+ex.getMessage());
}
}
};
ActionListener openListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
if (e.getActionCommand().equals("display")) {
setVisible(true);
}
} catch (Exception ex) {
System.out.println("haha"+ex.getMessage());
}
}
};
popup = new PopupMenu();
// 創建[顯示]菜單及其事件
MenuItem openItem = new MenuItem("顯示");
openItem.addActionListener(openListener);
openItem.setActionCommand("display");
popup.add(openItem);
// 創建[退出]菜單及其事件
MenuItem defaultItem = new MenuItem("退出");
defaultItem.addActionListener(defaultListener);
defaultItem.setActionCommand("exit");
popup.add(defaultItem);
// 右鍵圖標
trayIcon = new TrayIcon(image, "Java倒計時", popup);
trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(defaultListener);
trayIcon.addMouseListener(new MouseAdapter() {
@SuppressWarnings("static-access")
public void mouseClicked(MouseEvent e) {
// 點擊系統托盤圖標和滑鼠左鍵
if (e.getSource() == trayIcon && e.getButton() == e.BUTTON1) {
if (e.getClickCount() == 2)// 雙擊
{
setVisible(true);
}
}
}
});
try {
tray.add(trayIcon);
} catch (AWTException e1) {
//e1.printStackTrace();
System.out.println("heihei"+e1.getMessage());
}
}
⑤ java web 怎麼實現在線消息提示功能
有三種方式。
js定時到伺服器拉取消息
js與伺服器建立長連接,實現假推送
使用webSocket,實現真正的伺服器消息推送
⑥ Java web 服務端消息推送用什麼比較好
Java web 服務端消息推送用極光推送就不錯,效率很高。極光推送搭建起一個高度穩定、可擴展的雲端架構,極大地幫助移動應用開發者節約開發和維護的成本,輕松實現毫秒級的精準推送。⑦ java消息推送,一個實時數據的web顯示該怎麼做
javaweb消息實時推送可以使用GoEasy平台。
操作如下:
到官網上注冊一個賬號,並創建一個應用,應用創建好後系統會默認為它生成兩個key: publish key和subscribe key。
前台實時訂閱及接收:需要引入goeasy.js,然後調用goeasy的subscribe方法訂閱一個channel即可,訂閱時無論是用publish key還是subscribe key都可以。通過subscribe的參數 onMessage的回調函數可以實時接收到消息。
前台實時推送:需要引入goeasy.js(如果該頁面已經引入了可不在引入),然後調用goeasy的publish方法向已訂閱的channel上推送消息即可,推送時只能用publish key。
後台實時推送:調用GoEasy Restful API, 用post方式訪問http://goeasy.io/goeasy/publish, 同時還需要帶上三個必要參數:
appkey: publish key
channel: 你訂閱了的channel
content: 推送內容
GoEasy的實現原理很簡單,就是推送消息的一端只負責推送,而需要接收的頁面需要預先訂閱。訂閱什麼呢?訂閱channel。往 某個channel上推送消息,客戶端就訂閱相同的channel,這樣就可以確保准確接收。通過channel我們可以自己指定哪些頁面或哪些用戶可以 接收到從這個channel上推送出來的消息。
⑧ java 怎麼實現消息提醒功能
首先資料庫要一張消息表,記錄消息體信息。包括消息主題、用戶id、時間、發出頁面、消息狀態。
主體實現主要是用js控制,我們用的dwr技術,將消息體的獲取,時間控制及當前時間要顯示的消息個數,都寫到dwr配置的類中。
接著在消息js中通過dwr生成的js名稱調用上述的方法獲取消息信息,將數據封裝到js中,在需要使用消息的頁面只需要導入消息js、dwr的js就可以使用了。