用C#写一个websocket客户端,代码如下
using System;
using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
Method1();
Console.ReadKey();
}
public static async Task Method1()
{
var clientWebSocket = new ClientWebSocket();
await clientWebSocket.ConnectAsync(new Uri("ws://localhost:1998/WebSocket/testWebSocket"), CancellationToken.None);
Console.WriteLine("Connected!");
// Send message to server
var msg = "你好服务器!";
var buffer = System.Text.Encoding.UTF8.GetBytes(msg);
await clientWebSocket.SendAsync(new ArraySegment<byte>(buffer), WebSocketMessageType.Text, true, CancellationToken.None);
// Receive message from server
var receiveBuffer = new byte[1024 * 4];
var receiveResult = await clientWebSocket.ReceiveAsync(new ArraySegment<byte>(receiveBuffer), CancellationToken.None);
while (!receiveResult.CloseStatus.HasValue)
{
Console.WriteLine("Received message: " + System.Text.Encoding.UTF8.GetString(receiveBuffer, 0, receiveResult.Count));
receiveResult = await clientWebSocket.ReceiveAsync(new ArraySegment<byte>(receiveBuffer), CancellationToken.None);
}
// Close connection
await clientWebSocket.CloseAsync(receiveResult.CloseStatus.Value, receiveResult.CloseStatusDescription, CancellationToken.None);
Console.WriteLine("Disconnected!");
}
}
然后用java写个websocket服务端代码如下,发现连接上服务端报错
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.OnError;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/testWebSocket")
public class WebSocketServer {
@OnOpen
public void onOpen(Session session) {
System.out.println("Connected ... " + session.getId());
}
@OnMessage
public String onMessage(String message, Session session) {
System.out.println("Received: " + message);
return "Response: " + message;
}
@OnClose
public void onClose(Session session) {
System.out.println("Disconnected ... " + session.getId());
}
}
错误如下,这个异常如何解决
1月 16, 2025 4:28:48 下午 org.apache.tomcat.websocket.pojo.PojoEndpointBase onError
严重: 在错误发生后,没有为[WebSocketServer]配置错误处理
java.io.EOFException