Форум: "Прочее";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
ВнизJDMClient Найти похожие ветки
← →
VirEx © (2006-06-25 22:43) [0]здрасьте, воот решил сделать клиента форума мастаков для мобилы, для своей Nokia 6021 :)
это пре пре^4 альфа полу версия, поэтому... не пинайте ногами если что :)
работа:
- при запуске мидлета появляется список форумов: прочее, сети и т.п.
- жмем кн. "GO" и заходим в список тем выбранного форума, или жмем "Back"
- жмем кн. "GO" и ...видим ответы, можно выбрать Copy (копирование выделенного ответа в буфер обмена), Citate (переход в окно набора текста для отправки своего ответа в ветке, при этом автоматически вставляется текст ответа который был выделен), и Add message (просто заходим в окно набота текста ответа), или опять же жмем "Back"
конечно есть ограничения:
- запрашиваются не более 20 свежих веток в форуме
- и т.к. посты в ветке бывают огромными (кто что только не запихает, то код своей программы, то новости про футбол...) я ограничил количество показываемых постов до 4х, ...с нулевого поста по 3й :) иначе Оут Оф Мэмори на моей нокии (маловато памяти.. бум делать по другому)
- ..и пка что нельзя добавить свой ответ, также как и свою ветку
Товарисчи, если можно - постите сюда о багах, названия своих телефонов, и что хотелось бы добавить.
клиент сделан на MIDletPascal 2.02, код выложу позже, щас не до этого
http://winconsul.kladovka.net.ru/java/JDMClient/DMClient.jad
http://winconsul.kladovka.net.ru/java/JDMClient/DMClient.jar
← →
McSimm(proxy) (2006-06-25 22:48) [1]Я не знаком с программироанием для телефонов, скажите, было бы удобнее, если бы протокол поддерживал SOAP и/или XML-RPC ?
← →
VirEx © (2006-06-25 22:56) [2]SOAP незнаю, но XML-RPC для мобильной VM это жуткие тормоза при парсинге, огромный мидлет и ..ну их нафиг проблемы) юзаем обычный HTTP, нам что GET что POST не сложно :)
← →
VirEx © (2006-06-25 22:59) [3]import java.io.*;
import javax.microedition.io.*;
import java.lang.*;
// class name must be prefixed with Lib_ and all letters except
// the starting L must be lowercase
public class Lib_myhttp
{
public static String propName="";//
public static String propValue="";//
public static void setpostmethod(){
}
public static void setgetmethod(){
}
public static void setproperty(String name, String value){
propName=name;//
propValue=value;//
}
public static String loadurl(String URL){
HttpConnection conn = null;
InputStream is = null;
String s = "";
int i;
String n,v;
char chh=10;
try {
StringBuffer sb = new StringBuffer("");
conn = (HttpConnection)Connector.open(URL);
//conn.setRequestMethod(HttpConnection.POST);
conn.setRequestProperty(propName,propValue);
is = conn.openInputStream();
int ch;
while ((ch = is.read()) != -1) {
sb.append((char)ch);
}
s=sb.toString();
if (is != null) is.close();
if (conn != null) conn.close();
}
catch( IOException e ){}
finally{}
return s;
}
}
← →
VirEx © (2006-06-25 23:02) [4]хм, вобщем вот так примерно, не потёр я лишние переменные... :)
жду мнений
← →
SergP. (2006-06-25 23:16) [5]На Сименсе CF75 будет работать?
← →
Marser © (2006-06-25 23:33) [6]Ух, спасибо большое! Завтра закачаю на мобилку.
← →
VirEx © (2006-06-26 16:00) [7]
> [5] SergP. (25.06.06 23:16)
> На Сименсе CF75 будет работать?
работает на телефонах которые поддерживают спецификацию MIDP1
← →
Кручен-Верчен © (2006-06-26 16:20) [8]А чем Opera Mini не устраивает?
← →
Джо © (2006-06-26 16:23) [9]> [8] Кручен-Верчен © (26.06.06 16:20)
> А чем Opera Mini не устраивает?
Наверное, тем, что это не клиент мастаков.
← →
Rule © (2006-06-26 16:30) [10]Кручен-Верчен © (26.06.06 16:20) [8]
наверное с тех же побуждений, по которым я пользуюсь клиентом, а не браузером на ноуте и стационарном компе
← →
Другой (2006-06-26 18:31) [11]Моя идея! :)
← →
VirEx © (2006-06-26 18:38) [12]
> [11] Другой (26.06.06 18:31)
> Моя идея! :)
нет, моя :)
я на мастаках уже давно не был, и только вчера увидел твой пост когда все ветки пересматривал которые ранее пропустил, но клиент то с момента моей ветки о документации J2ME был задуман
← →
Другой (2006-06-26 19:55) [13]> VirEx © (26.06.06 18:38) [12]
>
> > [11] Другой (26.06.06 18:31)
> > Моя идея! :)
>
> нет, моя :)
>
> я на мастаках уже давно не был, и только вчера увидел твой
> пост когда все ветки пересматривал которые ранее пропустил,
> но клиент то с момента моей ветки о документации J2ME был
> задуман
Но все равно молодец! :) Ладно...
← →
Pazitron_Brain © (2006-06-27 21:14) [14]> [11] Другой (26.06.06 18:31)
> Моя идея! :)
Говорил ведь надо организовать DelphiMaster on Phone Foundation :).
← →
Pazitron_Brain © (2006-06-27 21:15) [15]Давай те еще кто-нибудь этим займется? Будет конкуренция и качество мидлетов будет увеличиваться и увеличиваться :).
Максимус, молодец :).
← →
VirEx © (2006-06-28 03:12) [16]обновил клиента, теперь уже просто "пре альфа" :)
вобщем ломал голову как организовать подгрузку при скроллинге ответов в ветке, если на экране больше одного сообщения ...но опять всё упирается в парсинг HTML который жрет память так же как и отдельные сообщения... Out Off Memory как грится.
решил сделать проще: на экране одно сообщение, можно жать Next или Back и каждый раз ответ будет подгружаться, ...но :) опять же есть ответы которые бывают огромны что приводит к OOM, в будущем сделаю проверку на размер подгрузки сообщений и будет выводиться чтот типа "сообщение не загружено, мало памяти", либо обрезать, т.е. не докачивать все символы...посмотрим :)
теперь думаю можно поработать с клиентом комфортней:
- в начале спрашивает с какого периода выбрать из сервера новые ветки, в часах.. ну например вводим 3, и покажутся все ветки которые были созданы либо обновились за последние 3 часа
- отображает в начале ответа текущий номер ответа и общее количество ответов в ветке
- можно перейти на заданный номер ветки (опция Go наряду с Copy, Citate и т.п.)
возможность добавления своего ответа либо ветки пока не введена ...дайте поспать :)
← →
Kerk © (2006-06-28 09:32) [17]VirEx © (28.06.06 03:12) [16]
> но опять всё упирается в парсинг HTML который жрет память
> так же как и отдельные сообщения...
А как же опера работает?
← →
tesseract © (2006-06-28 09:44) [18]
> А как же опера работает?
Она не на J2ME написано явно.
← →
Pazitron_Brain © (2006-06-28 09:53) [19]> [18] tesseract © (28.06.06 09:44)
>
> > А как же опера работает?
>
> Она не на J2ME написано явно.
Ну конечно. У меня только j2me работает.
← →
VirEx © (2006-06-28 11:23) [20]
> [17] Kerk © (28.06.06 09:32)
> VirEx © (28.06.06 03:12) [16]
>
> > но опять всё упирается в парсинг HTML который жрет память
>
> > так же как и отдельные сообщения...
>
> А как же опера работает?
Опера мини использует прямой приём объектов отображения со своей прокси.
зайди на сайт http://www.yandex.ru/ через ПК, сколько? 12 Кб страничка без рисунков, а теперь зайди через опера мини... сколько? 3 Кб (тоже без рисунков)
я предполагаю такой механизм работы оперы мини:
- мидлет Опера мини работает через свой "операвский" прокси в инете,
т.е. запрашивает URL
- прокси качает запрошенную страничку и преобразует в формат данных воспринимаемый оперой мини
- запрошенные данные (может даже и в сжатом виде, например gzip) напрямую преобразуются в объекты на страничке: текст, его цвет, местоположение; кнопки; поля ввода. каждый элемент в j2me это класс, даже переменная integer это класс со своими свойствами и методами.
благодаря прямому преобразованию данных в страничку отображаемую на дисплее сотового телефона, без затрат мощностей телефона и времени на преобразование HTML в удобочитаемый вид, опера мини и работает так быстро, да еще и мало траффика потребляет.
даже опция "более высокое качество" картинки тому подтверждение (типа указание прокси, качать ли картинку с её истинным качеством).
> [18] tesseract © (28.06.06 09:44)
>
> > А как же опера работает?
>
> Она не на J2ME написано явно.
а на чем?) на asm2me? :)
← →
VirEx © (2006-06-28 12:35) [21]исходник на MIDletPascal языке:
http://winconsul.kladovka.net.ru/java/JDMClient/DMClient.zip
дополнительные модули без которых проект не скопмилится
(исходники *.java и сами модули/классы *.class, модули скопировать
в папку С:\Program Files\MIDletPascal\Libs)
http://winconsul.kladovka.net.ru/java/JDMClient/Libs.zip
← →
Kerk © (2006-06-28 12:38) [22]
> VirEx © (28.06.06 11:23) [20]
Делай так же :)
← →
VirEx © (2006-06-28 12:53) [23]
> [22] Kerk © (28.06.06 12:38)
> Делай так же :)
хех, нехило для двух недельной разработки уже такие перспективы)
сначало сделаю обычный
← →
Kerk © (2006-06-28 12:56) [24]
> VirEx © (28.06.06 12:53) [23]
Занялся бы сразу уж основательно :)
← →
VirEx © (2006-06-28 15:13) [25]
> Kerk © (28.06.06 12:56) [24]
>
>
> > VirEx © (28.06.06 12:53) [23]
>
> Занялся бы сразу уж основательно :)
некогда, мне бы дополнительный доход достать откуда-нить... учеба дорогая
← →
tesseract © (2006-06-28 15:20) [26]
> я предполагаю такой механизм работы оперы мини:- мидлет
> Опера мини работает через свой "операвский" прокси в инете,
> т.е. запрашивает URL- прокси качает запрошенную страничку
> и преобразует в формат данных воспринимаемый оперой мини-
> запрошенные данные (может даже и в сжатом виде, например
> gzip) напрямую преобразуются в объекты на страничке: текст,
>
навернёка используется стандартный для HTTP тип данных deflate/gzip.
← →
VirEx © (2006-06-28 15:32) [27]
> [26] tesseract © (28.06.06 15:20)
> навернёка используется стандартный для HTTP тип данных deflate/gzip.
ну наверняка то да, даже скроей всего, но думаю что саму страничку HTTP опера не грузит.
есть основания:
- видел мидлет по работе с zip архивами, в котором сам класс реализующий работу с архивами - 70-80 Кб
- и сам парсинг + "разрисовка" HTML"я в "разноцветный" текст, таблицы и т.п. обошелся бы мидлету не менее 30-50 Кб
- представь: загрузила опера сжатую страничку в 3 Кб, затем распаковала на 12 кб, затем пропарсила и создала каждый элемент отображения (текст, строка ввода, линк и т.п.). получается: раздутая инфа, + парсинг отнимающий мемори и время, и вновь созданные элементы которые тоже кушают память, + всё выполняется в отдельном потоке, но всё работает на моём сотике где максимальный размер мидлета не должен превышать 127 Кб и работает быстро.
← →
Pazitron_Brain © (2006-06-29 14:30) [28]Motorola c650
Форумы обновляет, а темы - нет. Если еще раз нажму на GO, то вылетает.
← →
VirEx © (2006-06-29 22:03) [29]
> [28] Pazitron_Brain © (29.06.06 14:30)
> Motorola c650
>
> Форумы обновляет, а темы - нет. Если еще раз нажму на GO,
> то вылетает.
это изза пока еще сырого парсинга html, видимо надо делать на яве, иначе при парсинге (кто читал мой кривой код на MIDletPascal) создаётся куча объектов стрингов, и никак их там не close и не free
← →
VirEx © (2006-06-30 00:28) [30]Gero, я совсем запутался как добавить своё сообщение:
методом get так?: http://www.delphimaster.ru/cgi-bin/forum.pl?id=[номер_ветки]&n=[номер_форума]&user=[имя_пользователя]&topsw=[пароль _пользователя]&text=text
или методом post:
User-Agent=useragent
name=имя_пользователя
password=пароль_пользователя
email=email
text=text
← →
Gero © (2006-06-30 01:46) [31]Методом post, только не password, а topsw.
← →
VirEx © (2006-07-01 09:49) [32]test
← →
VirEx © (2006-07-01 09:52) [33]1
← →
VirEx © (2006-07-01 09:54) [34]2
← →
VictorT © (2006-07-01 10:41) [35]Может, лучше не парсить html, а например, воспользоваться существующим протоколом для клиентов?
← →
VictorT © (2006-07-01 10:42) [36]З.Ы. На nokia 7210 будет работать?
← →
VictorT © (2006-07-01 10:44) [37]
>я предполагаю такой механизм работы оперы мини:
> - мидлет Опера мини работает через свой "операвский"
>прокси в инете,
>т.е. запрашивает URL
> - прокси качает запрошенную страничку и преобразует в
> формат данных воспринимаемый оперой мини
Всё правильно, только тут и предполагать не надо, так оно и есть, об этом и на сайте оперы мини написано.
← →
Gero © (2006-07-01 10:56) [38]> [35] VictorT © (01.07.06 10:41)
Протокол возвращает html.
← →
VirEx © (2006-07-01 11:08) [39]
> [38] Gero © (01.07.06 10:56)
может я что-то не понимаю, но ответ не добавляется ([32]-[34] это я хотел посмотреть через проксю http заголовки).
вобщем так,
отправляется:
POST /cgi-bin/forum.pl?n=3&id=1151261024 HTTP/1.0
Content-Type: text/html
Accept: text/html
User-Agent: JDMClient 1.0.0
name: user
topsw: pass
email: a@a.com
signature: signature
n: 3
id: 1151261024
text: test
Content-Length: 0
Host: www.delphimaster.ru
ответ от сервака:
HTTP/1.1 200 OK
Date: Sat, 01 Jul 2006 06:26:13 GMT
Server: Apache/1.3.34 (Unix) PHP/4.4.2
Content-Length: 29023
Connection: close
Content-Type: text/html; charset=windows-1251
← →
VirEx © (2006-07-01 11:10) [40]
> [36] VictorT © (01.07.06 10:42)
> З.Ы. На nokia 7210 будет работать?
[7] VirEx © (26.06.06 16:00)
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.041 c