В настоящий момент я пытаюсь выработать несколько игровых идей и пытаюсь создать приложение Java для работы в многопользовательской игре на основе веб-браузера.
Моя среда разработки - Eclipse на главной машине и блокнот + Google Chrome на этом ноутбуке.
Я создаю websocket, используя javascript на стороне клиента, и используя java.net.Socket на сервере.
Мне удалось получить соединение, подтвержденное с обоих концов, но, похоже, не может отправлять или получать какие-либо данные между ними, если клиент не закрывает соединение (даже не ошибка, просто кажется, что-то увлекается чем-то и вызов socket.close).
Есть ли у кого-нибудь идеи?
Вот код:
Клиент:
<script type="text/javascript">
var socket;
function init() {
socket = new WebSocket("ws://192.168.0.3:10000");
socket.onopen = function() { alert('OPEN: ' + socket.readyState); }
socket.onmessage = function (msg) { alert('DATA: ' + msg.data); }
socket.onerror = function (msg) { alert('DATA: ' + msg.data); }
socket.onclose = function () { alert('CLOSED: ' + socket.readyState); }
}
function onClick() {
socket.send("YAY!");
}
</script>
Сервер:
public static void main(String args[])
{
System.out.printLn("Websocket server test");
ServerSocket connectSocket = null;
try
{
Socket clientSocket;
connectSocket = new ServerSocket(10000);
System.out.printLn("Waiting for connection...");
clientSocket = connectSocket.accept();
System.out.printLn("Got one!");
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
for(int i=0;i<100;i++) //Shit but easy
{
String data = in.readLine();
System.out.printLn("Got data: " + data);
out.printLn("YAY!");
}
}
catch (IOException e)
{
System.out.printLn("You fail: " + e.getMessage());
}
System.out.printLn("Finished!");
}