Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание чата, работа со скриптами 
:(
    Опции темы
TyVik
Дата 16.11.2005, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.10.2005

Репутация: нет
Всего: нет



Задача - создать проги (клиент+сервер) для чата (типа ICQ, но всё должно быть своим). Общение будет происходить только с телефона на телефон. Серверная часть должна быть написана на скриптовых языках (повесить демона мне просто не позволит хостер).
Собственно вопрос - возможно ли такое?
PM MAIL   Вверх
Dancer
Дата 16.11.2005, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



Если с телефона на телефон, тогда нахрена тебе сервер?
Хотя, наверное для того чтобы узнавать IP того с кем нужно делать сессию соединения.
Ну, скрипт на сервере очень простой вешаешь, заходим на сервак с мобилки, регистримся, мол я Василий Пупкин.
На серваке запоминаем что пользователь Василий Пупкин сейчас активен, и сохраняем IP адресс с которого Василий стукнулся к серверу.
На серваке так же должен быть скрип получить всех пользователей сервера (хотя в последсвии его можно немного обыграть и выдавать лишь список пользователей, с которыми установлены контакты (но это уже пусть будет второй этап) сначала сделай всех)
Получили пользователей, смотрим что Василий Пупкин сейчас он-лайн, делаем с ним соединение как ServerSocket("socket://"+то_что_получили_от_сервера), то есть IP Васин и порт, на котором он слушает пакеты от сервера. После того как мы смогли создать сокет, шлём пакеты Васи.
Одно маленькое дополнение, необходимо будет разработать собственный протокол общения клиента с сервером и клиента с клиентом.
Что-то вроде префикса от кого идёт инфа, ID-команды (ну, или что-то там: текст, сообщение от сервера, присоединение клиента и т.д.)
Скрипт ведёт xml файлик, ну или в любом другом формате (как тебе больше нравиться), в этом файлике будут находиться активные клиенты, и плюс ещё отдельный файлик держать, где будет база всех клиентов. При дисконнекте пользователя от сервера из файлика активных пользователь удаляется, при входе - добавляется.
Главное правильно разработать концепцию, а ? и после этого кучу всякой гадости написать, ещё никто не отменял.
ну, пусть будет так
?command=login&user=Vasiliy&psw=111 - это будет заход на сервак
?command=senText&ToUser=Vasiliy_freand&FromUser=Vasily&Text=250_simbols (ну, это я грубо взял 250 символов, но ограничение сделать можно, причём пользователь с телефона будет писать столько сколько ему будет нужно, а мидлет сам пусть делит символы (и если нужна будет склейка, то можно ввести новую команду что-то вроде sendText+) и будет происходить склейка до тех пор, пока не придёт команда sendText
принимающий мидлет будет так же получать частями текс (далее хочешь частями отобраджай, хочешь записывай этот текс хоть в файловую систему, хоть в RMS, хоть просто храним в какой нить переменной; это уже будет зависеть от тебя самого и от того как ты захочешь это организовывать)
?command=JoinUser_request&userName=newVasiliy_freand&FromUser=Vasily
?command=JoinUser_accept&ToUser=Vasily?FromUser=newVasiliy_freand

Думаю, в этом ничего не будет сложного. Если будут вопросы могу обсудить мылом, а хотя наверное лучше здесь, пусть люди видят, может быть чего лучше ещё присоветуют.


Добавлено @ 17:55
Да, кстати, поищи поиском в интернете, я уже где-то даже встречас мидлеты, которые что-то вроде ICQ делают, и чат через bluetooth правда, но всё равно, думаю будет полезно. Совсем не давно на что-то похожее натыкался, но линков точно не осталось, зайди на googl там найдёшь.

Это сообщение отредактировал(а) Dancer - 16.11.2005, 17:56


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
javastic
Дата 17.11.2005, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Dancer, ну ты молоток, почти ТЗ написал. =)
5 баллов.

Хочу поделиться. Я тоже когда то делал простой чат.
Клиент - мидлет в котором задаётся логин/пароль, регистрация на сервере, вход на сервер, получение сообщений, передача сообщений.
Сервер - база на ms access для сообщений и настроек пользователя , asp скрипты: опработки регистрации, входа пользователя, проверки новых сообщений, удаление прочитанных из базы, добавления сообщения.


TyVik, в общем это не сложно делай всё последовательно и минимум наворотов, потом если что доработаешь.



--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
TyVik
Дата 17.11.2005, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.10.2005

Репутация: нет
Всего: нет



Да, спасибо большое - помог всё изложить последовательно smile
Вот только надо сделать так, чтоб сообщения шли через сервер :/ Да, ещё проблема - шлюз МТС - он сам распределяет что кому куда посылать? Просто с другом очень долго спорили...
PM MAIL   Вверх
javastic
Дата 18.11.2005, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Если ты будешь пользоваться отсылкой по IP то не факт что у вас будут разные адреса. Во внутренней сети конечно разные. Теоретически должен перенаправлять пакеты без проблем, а что у них там и как не знаю.
Я делал чат без использования IP, а пользовался исключительно своим идентификатором. НАпример после того как ты залогинился, сервак автомат генерит тебе некий UID и передаёт обратно твоему приложению, ты же в свою очередь когда будешь передавать свои сообщения или проверять новые будешь выдавать свой UID, а сервак будет сравнивать, если твой UID будет соответствовать тому что на твою учётную запись настроено, то это ты, если нет, то потребует перелогиниться. В общем как работает любой сервер с веб-браузером, в общем как аналог сессий.

Это сообщение отредактировал(а) javastic - 18.11.2005, 10:33


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.