java實現websocket
Ⅰ java websocket 客戶端怎麼實現
你說的這個是一種推送技術,由伺服器主動將數據推送給客戶端
tomcat8已經很好的支持web
socket
了websocket已經慢慢普及與html5做這樣的推送
而你用javaweb的話,直接導入tomcat.jar就可以使用websocket了
網上有很多例子
Ⅱ websocket怎樣用java
java7 開始支持WebSocket,並且只是做了定義,並未實現
tomcat7及以上,jetty 9.1及以上實現了WebSocket,其他容器沒有研究
spring 4.0及以上增加了WebSocket的支持
spring 支持STOMP協議的WebSocket通信
WebSocket 作為java的一個擴展,它屬於javax包目錄下,通常需要手工引入該jar,以tomcat為例,可以在 tomcat/lib 目錄下找到 websocket-api.jar
Ⅲ java websocket web網頁聊天怎麼實現
websocket 是反向推送的一種類型
聊天需要實時性高,在A第一次發送信息給B的時候需要建立websocket的連接,A向B發送信息就通過websocket完成。
A如果關閉窗口則websocket斷開連接
Ⅳ java中怎麼使用websocket
伺服器端實現(Tomcat)
客戶端實現(Java-WebSocket)
客戶端實現(Javascript原生API)
Ⅳ java怎麼做websocket
package com.bpms.interfaces.communicate.paycode;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ConnectException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import com.unify.cc.common.CommonUtil;
public class SocketSend {
private String host = "11.1.66.193";
private int port = 2345;
private Socket client;
private SocketAddress remoteAddr;
private DataOutputStream os;
private DataInputStream is;
private int overTime = 0;
private int maxChang = 256;
private String error = "";
/**
* 只配服務端的地址和埠
* @param host 服務端IP
* @param port 服務端埠
*/
public SocketSend(String host , int port) {
this.host = host;
this.port = port;
}
/**
* 設置連接報文長度的配置
* @param host IP
* @param port 埠
* @param maxChang 指定接收報文長度
*/
public SocketSend(String host , int port , int maxChang) {
this.host = host;
this.port = port;
if(maxChang != 0)
this.maxChang = maxChang;
}
/**
* 設置連接連接超時的配置
* @param host IP
* @param port 埠
* @param maxChang 指定接收報文長度
* @param overTime 連接超時時間
*/
public SocketSend(String host , int port , int maxChang , int overTime) {
this.host = host;
this.port = port;
if(maxChang != 0)
this.maxChang = maxChang;
if(overTime != 0)
this.overTime = overTime;
}
/**
* 初始化參數
* @throws IOException
*/
public void init() throws IOException {
if(client == null)
client = new Socket();
remoteAddr = new InetSocketAddress(host,port); //創建客戶端連接地址
try{
if(overTime != 0) {
client.connect(remoteAddr,overTime);
}
else {
client.connect(remoteAddr);
}
} catch (ConnectException e) {
error = "SocketSend - init ConnectionServicesException";
return;
}
is = new DataInputStream(client.getInputStream()); //獲得服務端輸出流
os = new DataOutputStream(client.getOutputStream()); //獲得服務端輸入流
}
/**
* 關閉連接
* @throws IOException
*/
private void close() throws IOException{
if (os != null) {
os.close();
}
if(is != null) {
is.close();
}
if(client != null) {
client.close(); //關閉連接器
}
}
/**
* 寫入流
*/
public void writeMessage(byte[] byt){
try {
os.write(byt); //在服務端寫入報文
os.flush();
} catch (IOException e) {
CommonUtil.debug("SocketSend - writeMessage 報文寫入異常");
e.printStackTrace();
}
}
/**
* @param message 報文
* @return 返回報文
* @throws IOException , Exception
*/
public byte[] execute(byte[] byt) throws Exception{
init();
byte[] buf = null;
//連接異常不做處理
if("".equals(error)){
writeMessage(byt);
buf = new byte[maxChang];
if (is != null) {
is.read(buf);//讀入數據到緩沖區
}
close();
}else {
close();
throw new Exception(error);
}
return buf;
}
}
Ⅵ 如何用java實現websocket
伺服器端實現(Tomcat)
客戶端實現(Java-WebSocket)
客戶端實現(Javascript原生API)
Ⅶ 怎樣用java web和websocket實現網頁即時通訊
java 後台做 websocket 服務端。 頁面使用js的websocket客戶端 連接上 服務端 就能實時通信了。
Ⅷ java中使用websocket推送消息伺服器端怎麼才能主動推送
目前要實現消息實時推送,有兩種方法,一種是ajax輪詢,由客戶端不停地請求伺服器端,查詢有沒有新消息,然後再由伺服器返回結果;另外一種就是long poll,通過一次請求,詢問伺服器有沒有新消息更新,如果沒有新消息時,會保持長連接,就一直不返回Response給客戶端。直到有消息才返回,返回完之後,客戶端再次建立連接,周而復始。這兩種都是單向鏈接,需要被動的請求伺服器,而不是由伺服器自動發給客戶端。
從上面可以看出其實這兩種方式,都是在不斷地建立HTTP連接,然後等待服務端處理,可以體現HTTP協議的另外一個特點,被動性。
Ⅸ java消息推送websocket怎麼實現
java消息推送websocket實現原理:在實現websocket連線過程中,需要通過瀏覽器發出websocket連線請求,然後伺服器發出回應,這個過程通常稱為「握手」 。在 WebSocket API,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。在以前的消息推送機制中,用的都是 Ajax 輪詢(polling),在特定的時間間隔由瀏覽器自動發出請求,將伺服器的消息主動的拉回來,這種方式是非常消耗資源的,因為本質還是http請求,而且顯得非常笨拙。而WebSocket 在瀏覽器和伺服器完成一個握手的動作,在建立連接之後,伺服器可以主動傳送數據給客戶端,客戶端也可以隨時向伺服器發送數據。
WebSocket協議是基於TCP的一種新的網路協議。實現了瀏覽器與伺服器全雙工(full-plex)通信——允許伺服器主動發送信息給客戶端。也可以選擇第三方推送平台來實現,比如極光推送就不錯。