Go to content Go to navigation Go to search

Project Dark Star – start Server: Helloworld

March 19th, 2009 by dungbk

Quay trở lại vấn đề Start Server & làm cho Server chào Helloworld – điều mà không phải ai cũng đủ kiên trì làm được với bài tut trước. Bài tut này sẽ trình bày lại một cách đơn giản cách Start Server, bỏ qua việc giới thiệu & quảng cáo về PDS.

C      Công việc sẽ chia thành mấy bước thế này:

– Build Path cho các file .jar trong thư viện của PDS vào project

– Tạo class HelloWorld

– Tạo thư mục conf

– Viết hello.xml

Trước hết, muốn làm việc với PDS thì phải down nó về đã. Down ở đây:

http://www.projectdarkstar.com/current-distribution.html

download và giải nén 2 gói Project Darkstar Server, source & binary Project Darkstar Java Client SDK, source & binary là đủ dùng.

Bây giờ tạo một project Java, ví dụ tên là PDSHelloServer.

1.    1. Build Path: (lấy thư viện của PDS Server)

Chuột phải vào System library-> Build Patch -> Configure Build Path -> Add External Jars. Sau đó chỉ đường dẫn vào sgs-server-dist->lib, chọn tất cả file đuôi jar -> ok . Sẽ xuất hiện thư mục Referenced Library.

2.    2. Tạo 1 package tên là helloServer trong project, copy class HelloWorld trong sgs-server-dist-0.9.8\tutorial\src\com\sun\sgs\tutorial\server\lesson1, nhớ đổi tên package

3.   3. Tạo thư mục conf trong Project copy các file Helloworld.boot , Helloworld.properties , logging.properties trong sgs-server-dist-0.9.8/tutorial/conf vào thư mục conf.

Chỉnh sửa một số thông tin trong các file này như sau:

File HelloWorld.boot:

SGS_PROPERTIES=${SGS_HOME}/HelloWorld/conf/HelloWorld.properties

SGS_LOGGING=${SGS_HOME}/HelloWorld/conf/logging.properties

- Fi   File  HelloWorld.properties:

com.sun.sgs.app.name=HelloWorld

com.sun.sgs.app.root=HelloWorld/data/HelloWorld

com.sun.sgs.app.port=1139

com.sun.sgs.app.listener=helloServer.HelloWorld => package chứa class HelloWorld

4.  4. Viết hello.xml

Tạo ra 1 file hello.xml trong project, nội dung như sau:

<project default=“jar”>

<!–bắt buộc phải có target clean trong mỗi ant –>

<target name=“clean”>

<delete dir=“jar”></delete>

</target>

<!– nén file từ basedir thành destfile (trong thư mục project của minh)–>

<target name=“jar”>

<mkdir dir=“jar”/>

<jar destfile=“jar/HelloWorld.jar” basedir=“bin”/>

<!–copy file jar–>

<!–ở đây folder sgs-server-dist-0.9.8 được đặt ở địa chỉ E:/mydata/projectdarkstar, để chạy được phải sửa đường dẫn tương ứng trên máy cá nhân –>

<copyfile dest=“E:/my data/projectdarkstar/sgs-server-dist-0.9.8/lib/HelloWorld.jar” src=“jar/HelloWorld.jar”/>

<copydir dest=“E:/my data/projectdarkstar/sgs-server-dist-0.9.8/HelloWorld/conf” src=“conf”></copydir>

<!–delete để có thể chạy lại application–>

<delete dir=“E:/my data/projectdarkstar/sgs-server-dist-0.9.8/HelloWorld/data”></delete>

<!–start application với tham số bên dưới–>

<java fork=“true” jar=“E:/my data/projectdarkstar/sgs-server-dist-0.9.8/bin/sgs-boot.jar” >

<arg value=“E:/my data/projectdarkstar/sgs-server-dist-0.9.8/HelloWorld/conf/HelloWorld.boot”></arg>

</java>

</target>

</project>

Right click vào file hello.xml này, chọn Run As –> Ant Build, trên màn hình console sẽ log lại dòng Hello World!

Lưu ý, khi start lại Server lần 2, nếu gặp lỗi không xóa được /sgs-server-dist-0.9.8/HelloWorld/data

thì vào task manager và kill bớt mấy process từ lần chạy trước. Good luck!

Project Dark Star – connecting server and client

March 19th, 2009 by dungbk

Ở bài tut trước đã hướng dẫn cách để làm cho Server “chạy”. Mục tiêu tiếp theo sẽ là làm sao để Server nói chuyện với Client, phức tạp hơn là làm cho các Client nói chuyện với nhau thông qua Server. Bài tut này sẽ hướng dẫn cách làm cho Server & Client nói chuyện với nhau.

Cụ tỉ sẽ gồm các công việc sau:

- Start Server

- Login: Start Client & client login vào server, Server cho client login vào

- Echo : Client gửi cho Server 1 chuỗi bất kì, Server gửi trả cho Client đúng chuỗi đó

1. Start Server : xem bài tut trước hoặc bài này

2. Login:

- Tạo một project mới quản lý Client, ví dụ tên là PDSHelloClient.

o Add các file .jar trong \sgs-client-0.9.8\lib theo cách tương tự như đã làm với Server

o Tạo 1 package mới và copy file HelloUserClient.java trong \sgs-client-0.9.8\tutorial\src\com\sun\sgs\tutorial\client\lesson1 vào.

- Quay về project Server:

o Copy class HelloUserSessionListener ở \sgs-server-dist-0.9.8\tutorial\src\com\sun\sgs\tutorial\server\lesson5.

o Trong class của Server:

- Thêm khai báo logger:

/** The {@link Logger} for this class. */
private static final Logger logger =
Logger.getLogger(HelloWorld.class.getName());

- đổi phương thức loggedIn thành:

public ClientSessionListener loggedIn(ClientSession session) {

// User has logged in

logger.log(Level.INFO, “User {0} has logged in”, session.getName());

// Return a valid listener

return new HelloUserSessionListener(session);

}

Để server cho phép Client login và log lại thông tin. Phương thức này sẽ trả về một instance của HelloUserSessionListener.

(Hoặc copy Class HelloEcho trong \sgs-server-dist-0.9.8\tutorial\src\com\sun\sgs\tutorial\server\lesson5 )

- Bây giờ Run lại Server & Run Client, xong nhiệm vụ 2

3. Echo:

- Phía Server:

o Copy class HelloEchoSessionListener từ \sgs-server-dist-0.9.8\tutorial\src\com\sun\sgs\tutorial\server\lesson5.

o Trong class của Server: đổi phương thức loggedIn thành:

public ClientSessionListener loggedIn(ClientSession session) {

// User has logged in

logger.log(Level.INFO, “User {0} has logged in”, session.getName());

// Return a valid listener

return new HelloEchoSessionListener(session);

}

Khác biệt duy nhất ở đây so với phương thức loggedIn cũ là phương thức này trả về một instance của HelloEchoSessionListener

o Bây giờ Run Server đi.

- Phía Client: Run Client và type vào text box một string bất kì, sẽ nhận được phản hồi từ phía Server.

Xong. Bây giờ tìm cách để Client trò chuyện với Client đi :D .

DarkStar Project

March 13th, 2009 by xuanhung

1. DarkStar là gì ?
Project DarkStar (PDS) là  một dự án mã nguồn mở viết bằng java được phát triển nhằm đơn giản hóa việc phát triển các dự án như  game trực tuyến trên qui mô lớn, xây dựng một thế giới ảo, hoặc các ứng dụng mạng xã hội. Thay vì phải mất thời gian code, thì nay tất cả đều có sẵn trong PDS.
2.Cụ thể PDS dùng để làm gì ?
-PDS dùng để xây dựng Server và Client cho ứng dụng.
-Tạo một mạng Game lớn, đồ sộ, đáng tin cậy, ổn định, quan trọng là không bị đứt khi gặp lỗi .
3.Cài đặt và chạy Darkstar :
Dowload Project tại trang chủ  http://www.projectdarkstar.com/ để có phiên bản mới nhất (có 2 gói, một là sgs-server-dist dùng cho server  và sgs-client-dist cho client, ở đây sẽ lấy ví dụ ở sgs-server-client) .
Sau khi giải nén, ta được thư mục sgs-server-dist. Trong thư mục này có những hướng dẫn cụ thể, những bài thực hành của PDS trong mục tutorial. Dưới đây là hướng dẫn để áp dụng PDS vào dự án của mình.
4. Áp dụng: (Lesson 1 : Hellowolrd)
- Vào Eclipse, tạo Project java.
- Trong thư  mục src : tạo package chứa class HelloListener (copy từ  /sgs-server-dist-0.9.8/tutorial/src/com/sun/sgs/tutorial/server/lesson1)
- Lấy thư viện của sgs-server-dist : Chuột phải vào System library-> Build Patch -> Configure Build Path -> Add External Jars. Sau đó chỉ đường dẫn vào sgs-server-dist->lib, chọn tất cả file đuôi jar -> ok . Sẽ xuất hiện thư mục Referenced Library.
- Tạo thư mục conf trong Project, copy các file Helloworld.boot , Helloworld.properties , logging.properties trong sgs-server-dist-0.9.8/tutorial/conf vào thư mục conf.
- Cuối cùng, tạo một file.xml (dùng ant xml để chạy vì đơn giản hơn  so với việc viết bằng ngôn ngữ  khác các chức năng). File có nội dung như sau :

<!--Dùng ant thay cho code java, khả năng tương thích cao, được dịch ngay khi compile,
đây là phương pháp đơn giản, dễ sử dụng -->
<project default="jar">
<!--bắt buộc phải có target clean trong mỗi ant -->
<target name="clean">
<delete dir="jar"></delete>
</target>
<!-- nén file từ basedir thành destfile (trong thư mục project của minh)-->
<target name="jar">
<mkdir dir="jar"/>
<jar destfile="jar/phom.jar" basedir="bin"/>
<!--copy file jar-->
<copyfile dest="/home/legend/Desktop/sgs-server-dist-0.9.8/lib/phom.jar" src="jar/phom.jar"/>
<copydir dest="/home/legend/Desktop/sgs-server-dist-0.9.8/phom/conf" src="conf"></copydir>
<!--delete để có thể chạy lại application-->
<delete dir="/home/legend/Desktop/sgs-server-dist-0.9.8/phom/data"></delete>
<!--start application với tham số bên dưới-->
<java fork="true" jar="/home/legend/Desktop/sgs-server-dist-0.9.8/bin/sgs-boot.jar" >
<arg value="/home/legend/Desktop/sgs-server-dist-0.9.8/phom/conf/Phom.boot"></arg>
</java>
</target>
</project>

- Chạy file.xml này ( chuột phải -> run as -> ant build)