要在前端使用Java Socket.IO,首先需要在前端引入Socket.IO的客戶端庫。可以通過以下方式引入:
<script src="https://cdn.socket.io/socket.io-3.0.3.js"></script>
然后,前端代碼可以像以下這樣使用Socket.IO:
// 連接到Socket.IO服務器
const socket = io('http://localhost:3000');
// 監聽來自服務器的消息
socket.on('message', data => {
console.log(data);
});
// 發送消息給服務器
socket.emit('message', 'Hello, server!');
在后端,需要使用Java實現Socket.IO服務器。可以使用Java的Socket.IO庫,例如com.corundumstudio.socketio:netty-socketio
。
以下是一個簡單的Java Socket.IO服務器示例:
import com.corundumstudio.socketio.Configuration;
import com.corundumstudio.socketio.SocketIOServer;
import com.corundumstudio.socketio.annotated.OnConnect;
import com.corundumstudio.socketio.annotated.OnEvent;
import com.corundumstudio.socketio.annotated.OnDisconnect;
public class SocketIOServerExample {
public static void main(String[] args) {
Configuration config = new Configuration();
config.setHostname("localhost");
config.setPort(3000);
SocketIOServer server = new SocketIOServer(config);
server.addListeners(new SocketEventListener());
server.start();
}
public static class SocketEventListener {
@OnConnect
public void onConnect() {
System.out.println("Client connected");
}
@OnEvent("message")
public void onMessage(SocketIOClient client, String message) {
System.out.println("Received message from client: " + message);
client.sendEvent("message", "Hello, client!");
}
@OnDisconnect
public void onDisconnect() {
System.out.println("Client disconnected");
}
}
}
在這個例子中,我們創建了一個Socket.IO服務器,并定義了一個事件監聽器SocketEventListener
,用于處理客戶端連接、消息接收和斷開連接事件。
通過在前端和后端分別實現Socket.IO的客戶端和服務器,可以實現實時雙向通信功能。