當前位置:首頁 » 文件傳輸 » java訪問websocket
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

java訪問websocket

發布時間: 2023-03-15 11:40:59

A. websocket和java通信

防火牆把訪問給拒了吧。

B. java怎麼做websocket

我不知道你想用websocket實現什麼樣的功能,一般配合HTML5的話websocket可以解決服務端和客戶端消息實時傳遞的問題,如消息推送(webQQ這種)。它的初始連接是http轉成websocket連接。
實現的話要做兩件事,一端是在伺服器實現service,這個有點像tcplistener一樣;
另一個是客戶端(瀏覽器)開發,可以用JS實現:
<html>
<head>
<meta
charset="utf-8"
/>
<script
type="text/javascript">
var
host
=
'127.0.0.1';
var
port
=
8080;
var
url
=
'ws://'+host+':'+port+'/';
var
w
=
new
WebSocket(url);
//構建於伺服器之間的連接通信
<!--var
audioElement
=
document.createElement('audio');
-->
<!--audioElement.setAttribute('src',
'qqmsg.mp3');-->
w.onopen
=
function()//通過onopen事件句柄來監聽socket的打開兄雹事件
{
$('chat-box').innerHTML
=
'已連接到伺服器......<br/>';
}
w.onmessage
=
function(e)//用onmessage事件句柄接受伺服器傳過來的數據
{
var
msg
=
e.data;
var
chatBox
=
$('chat-box');
//
audioElement.play();
chatBox.innerHTML
=
chatBox.innerHTML+msg+'<br/>';
}
function
send()//使用send方法向伺服器發送數據
{
var
talk
=
$('talk');
var
nike
=
$('nike');
w.send('<strong
style="color:red">'+nike.value+':</strong>'+talk.value);
}
function
$(id)
{
return
document.getElementById(id);
}
</script>
</head>
<body>
<div
id="chat-box"
style="border:1px
solid
#cccccc;
width:400px;
height:400px;
overflow:scroll;"></div>
昵稱:
<input
type="text"
id="nike"/>
<br/>
內容:
<input
type="text"
id="talk"/>羨敬帆
<input
type="button"
id="send"稿友
onClick="send();"
value="發送"/>
</body>
可參考IBM社區
http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/
</html>

C. 關於java websocket第一次連接的問題

應該先啟動server,再用client去連罩襪接server,握派順序錯了可不物皮激行。

如果還連接不上,可以運行以下命令,看看server是否已經開始監聽4700埠:
netstat -aon -p tcp

D. java socket怎麼與websocket對接

這個問題問的不是很專業!准確的說,應該是java如何開發一個websocket協議的服務端程序與js前端對接!因為java socket不是一種協議,他是tcp的實現,而websocket則是一種協議(類似與HTTP,但與其不完全相同).至於實現方式,在tomcat7中的自帶的javax打頭的jar包正猛中,就有對於websocket的支持,如果你創建了一個web項目,並且引用了tomcat7的舉雀橋server runtime,那麼你可以直接對一個編寫好的類進行改造成一個websocket的服務端!

比如:

@ServerEndpoint("/wsdemo")//此處指定訪問地址,記得埠為tomcat配置的埠,即ws://localhost:8080/projectName/wsdemo
publicclassWsDemo{

@OnMessage//直接歲清加註釋即可//其他的OnError等類似的
publicvoidOnMessage(xxxEventevent){//單詞忘了....
event.getBaseRemote().sendText("");//向客戶端發送信息
}

}

E. 怎樣用java web和websocket實現網頁即時通訊

java 後台做 websocket 服務端。 頁面使用js的websocket客戶端 連接上 服務端 就能實時通信了。

F. 怎樣用java web和websocket實現網頁即時通訊

下面是一個java的多線程的WebServer的例子:

//import java.io.*;
import java.net.*;
//import java.util.*;

public final class WebServer {
public static void main(String argv[]) throws Exception
{
int port = 80;
// Establish the listen socket.
ServerSocket WebSocket = new ServerSocket(port);
while (true) {
// Listen for a TCP connection request.
Socket connectionSocket = WebSocket.accept();
//Construct object to process HTTP request message
HttpRequest request = new HttpRequest(connectionSocket);

Thread thread = new Thread(request); //Create new thread to process

thread.start(); //Start the thread

}
}
}

import java.io.*;
import java.net.*;
import java.util.*;

public final class HttpRequest implements Runnable {

final static String CRLF = "\r\n";//For convenience
Socket socket;

// Constructor
public HttpRequest(Socket socket) throws Exception
{
this.socket = socket;
}

// Implement the run() method of the Runnable interface.
public void run()
{
try {
processRequest();
} catch (Exception e) {
System.out.println(e);
}
}

private void processRequest() throws Exception
{
InputStream is = socket.getInputStream(); //Starts the input from client machine

DataOutputStream os = new DataOutputStream(
socket.getOutputStream());

// Set up input stream filters.

BufferedReader br = new BufferedReader(
new InputStreamReader(is));

String requestLine = br.readLine();

System.out.println(); //Echoes request line out to screen
System.out.println(requestLine);

//The following obtains the IP address of the incoming connection.

InetAddress incomingAddress = socket.getInetAddress();
String ipString= incomingAddress.getHostAddress();
System.out.println("The incoming address is: " + ipString);

//String Tokenizer is used to extract file name from this class.
StringTokenizer tokens = new StringTokenizer(requestLine);
tokens.nextToken(); // skip over the method, which should be 「GET」
String fileName = tokens.nextToken();
// Prepend a 「.」 so that file request is within the current directory.
fileName = "." + fileName;

String headerLine = null;
while ((headerLine = br.readLine()).length() != 0) { //While the header still has text, print it
System.out.println(headerLine);
}

// Open the requested file.
FileInputStream fis = null;
boolean fileExists = true;
try {
fis = new FileInputStream(fileName);
} catch (FileNotFoundException e) {
fileExists = false;
}

//Construct the response message
String statusLine = null; //Set initial values to null
String contentTypeLine = null;
String entityBody = null;
if (fileExists) {
statusLine = "HTTP/1.1 200 OK: ";
contentTypeLine = "Content-Type: " +
contentType(fileName) + CRLF;
} else {
statusLine = "HTTP/1.1 404 Not Found: ";
contentTypeLine = "Content-Type: text/html" + CRLF;
entityBody = "<HTML>" + "<HEAD><TITLE>Not Found</TITLE></HEAD>" + "<BODY>Not Found</BODY></HTML>";
}
//End of response message construction

// Send the status line.
os.writeBytes(statusLine);

// Send the content type line.
os.writeBytes(contentTypeLine);

// Send a blank line to indicate the end of the header lines.
os.writeBytes(CRLF);

// Send the entity body.
if (fileExists) {
sendBytes(fis, os);
fis.close();
} else {
os.writeBytes(entityBody);
}

os.close(); //Close streams and socket.
br.close();
socket.close();

}

//Need this one for sendBytes function called in processRequest
private static void sendBytes(FileInputStream fis, OutputStream os)
throws Exception
{
// Construct a 1K buffer to hold bytes on their way to the socket.
byte[] buffer = new byte[1024];
int bytes = 0;

// Copy requested file into the socket』s output stream.
while((bytes = fis.read(buffer)) != -1 ) {
os.write(buffer, 0, bytes);
}
}
private static String contentType(String fileName)
{
if(fileName.endsWith(".htm") || fileName.endsWith(".html"))
return "text/html";
if(fileName.endsWith(".jpg"))
return "text/jpg";
if(fileName.endsWith(".gif"))
return "text/gif";
return "application/octet-stream";
}
}

G. java是如何實現客服在線聊天功能的

Java 實現在線客服聊天功能的具體方式會因具體實現技術和業務需求不同而異,以下是一個可能的實耐爛緩現思路:

  • 客戶端和服務端之間的通信協議:在實現在線聊天功能的時候,需要考慮客戶端和服務端之間的通信協議。可以使用 WebSocket 協議,這是一種全雙工通信協議,支持客戶端和服務端之間的實時通信。Java 提供了多個 WebSocket 實現,比如 Tyrus、Jetty 和 Netty。

  • 實現服務端:在服務端實現在線聊天功能,需要創建 WebSocket 伺服器,並實現消息處理邏輯。在 Java 中,可以使用 Java WebSocket API,該 API 提供了 javax.websocket 包中的類和介面,可以方便地創建 WebSocket 伺服器和處理 WebSocket 消息。

  • 在服務端,需要實現 WebSocket 端點(Endpoint),處理客戶端連接、斷開連接以及收發消息等操作。可以通過擴展 javax.websocket.Endpoint 類,重寫 onOpen、onClose 和 onMessage 方法來處理相應的操作。

  • 實現客戶端:在客戶端實現在線聊天功能,需要創建 WebSocket 客戶端,並實現消息處理邏輯。Java 提供了多個 WebSocket 客戶端實現,比如 Tyrus、Jetty 和 Netty。

  • 在客戶端,可以使用 Java WebSocket API 提供的 javax.websocket 包中的歷粗類和介面來實現 WebSocket 客戶端。需要使用 javax.websocket.ClientEndpoint 註解來標記客戶端類,並使用 javax.websocket.Session 類來處理客戶端連接、斷開連接以及收發消息等操作。

  • 存儲聊天記錄:在實現在線聊天功能時,需要考慮如何存儲聊天記錄。可以使用資料庫或者文件等方式存儲聊天記錄,具體實現可以依據具體業務需求。

    以上是一種可能的實現思路,昌模實現在線聊天功能需要考慮很多具體細節,包括客戶端和服務端的具體實現、消息處理邏輯、聊天記錄存儲等。

H. java怎麼實現與websocket伺服器的通信

websocket伺服器的滲扒差通信可以用tomcat-api來實現的, 以前做過一個簡單的推此廳送示例,2227421573幫你叢皮寫好

I. javaweb項目使用了websocket,項目發布到公司伺服器後websocket報404錯誤!請問,可能是什麼原因引起的~

我碰到比較常見的原因型圓攜:

  1. 你的項目卜伏在伺服器上面運行出了問題,沒有正常腔判運行起來,這個一般可以通過容器的控制台檢查

  2. 你房補到伺服器的項目路徑有改變,所以你的請求地址錯了

J. java消息推送websocket怎麼實現

java消息推送websocket實現原理:在實現websocket連線過程中,需要通過瀏覽器發出websocket連線請求,然後伺服器發出回應,這個過程通常稱為「握手」 。在 WebSocket API,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。
在以前的消息推送機制中,用的都是 Ajax 輪詢(polling),在特定的時間間隔由瀏覽器自動發出請求,將伺服器的消息主動的拉回來,這種方式是非常消耗資源的,因為本質還是http請求,而且顯得非常笨拙。而WebSocket 在瀏覽器和伺服器完成一個握手的動作,在建立連接之後,伺服器可以主動傳送數據給客戶端,客戶端也可以隨時向伺服器發送數據。
WebSocket協議是基於TCP的一種新的網路協議。實現了瀏覽器與伺服器全雙工(full-plex)通信——允許伺服器主動發送信息給客戶端。也可以選擇第三方推送平台來實現,比如極光推送就不錯。