Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26163
Рейтинг: 2127
#16: 2015-08-02 02:52:05 ЛС | профиль | цитата
А не слишком ли жирно использовать MySQL для чата? База данных для целей чата как-то не очень катит
карма: 22

0
Ответов: 58
Рейтинг: 1
#17: 2015-08-02 03:01:02 ЛС | профиль | цитата
nesco, я больше не знаю как можно создать чат без использования сервера
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#18: 2015-08-02 07:13:42 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2017-06-14 22:42:51
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#19: 2015-08-02 07:49:31 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2017-06-14 22:42:51
карма: 0

0
Ответов: 824
Рейтинг: 138
#20: 2015-08-02 10:51:56 ЛС | профиль | цитата
Jonson, смотря какой чат нужно создать: - для общения через интернет, - для общения по локальной сети.
Через интернет без внешнего сервера ни как не получится, если конечно у Вас "белый" IP то в роли сервера может выступать Ваш комп.
Для локальной сети внешний сервер не нужен, сервером может бить любая машина в локальной сети.
но я не хотел присоединять к программе сторонние сервисы.

А как, по Вашему, называется это:
Недавно нашел сервер,который поддерживает внешний доступ к MySQL
Разве не сторонний сервис?
Так или иначе Вам придется задействовать сторонний сервис.
------------ Дoбавленo в 10.51:
Jonson писал(а):
я больше не знаю как можно создать чат без использования сервера

Вообще то, теоретически, чат возможен и без сервера. На остове P2P (Direct Connect) сетей, то-есть по принципу торрентов.
К сожалению, как это работает, сказать не могу, так-как не интересовался...
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#21: 2015-08-02 13:25:46 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2017-06-14 22:42:52
карма: 0

0
Ответов: 278
Рейтинг: 4
#22: 2015-08-02 18:34:00 ЛС | профиль | цитата
sashaoli писал(а):
скорее человек пытается ловить рыбу топором, а дрова заготавливает удочкой. Потому как имеет смутное представление, что ему нужно.
Человек имеет чёткое представление то, что ему нужно, потому как он назвал чёткие критерии, в рамках которых можно сделать поставленную задачу.

Другой совсем вопрос:
А не слишком ли жирно использовать MySQL для чата? База данных для целей чата как-то не очень катит
Не-а, не слишком жирно. Почему? Да потому что многие CMS, которые включают в себя модули/приложения чата - делают взаимосвязь сообщений чата именно через БД. Да, в некоторых двигах, i.e. IPB, есть возможность сохранять кеш последних сообщений в файлы на диске, но та же авторизация так или иначе проходит через БД.

Согласен с nesco, "слишком жирно!". Если все это тяжело, создайте почту у Google типа mail@site.ru и общайтесь через почту, запуская консольное приложение CNET, которое читает параметры "командной строки своего запуска", Но самое главное, не парьте себе мозги MySQL для создания чата ! Можем вместе попробовать сделать "Чат" !
Удачи ! ;D
Что ты несёшь? Какой чат через E-Mail? Это что, троллинг нового уровня такой что ли? Прогро-троллинг?) Ты что только парню в предыдущих постах не предлагал: и FTP, и TCP/IP, тперь предлагаешь почту у гугла через команды запуска. Ты ещё SSH предложи на Джино и сделать Чат через Python. Уже и про локальный чат тему подняли) С такими продолжениями и на bash не нужно заходить с утра, тут посмеяться от души хватит.

Недавно нашел сервер,который поддерживает внешний доступ к MySQL

Разве не сторонний сервис?
Так или иначе Вам придется задействовать сторонний сервис.
Так или иначе - это и есть сторонний сервис. Сторонний сервис с доступом подсоединения к внешней базы данных MySQL. Или ему, что, NGINX для этого требуется поднять? И за ним Апач и Пыху хвостом подвесить, не понятно для чего? А следом и Томкат поднять, на всякий случай. И ещё node.js, да. Так, чтобы был. Мало ли, вдруг без этого всего чат-то не будет работать. Да. Пожалуй, тут так или иначе не обойтись без стороннего, ой, внешнего сервера со всем этим добром...

Чел ясно спросил: можно? Ответ: да. Чем он это будет делать и жирно ли это будет или нет - он походу разберётся, предполагаю.

P.S. Делом бы лучше занимались, чем по 2 страницы исписывать непонятно вообще чем и зачем.
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 824
Рейтинг: 138
#23: 2015-08-02 19:29:58 ЛС | профиль | цитата
Vanchila, Оно конечно можно, на грядку в 1 сотку загнать Т-150, можно и МТЗ-80, что-бы вспахать.

У меня идея лучше - давайте к Toyota Land Cruiser плуг прицепим и вспашем грядку! А че - машина мощная...

Но встает один вопрос - "На х...я козе баян?".
То-есть вопрос целесообразности, ведь можно обойтись и меньшими "жертвами" - лопатой, ну или мотоблоком.

Не-а, не слишком жирно.
Да жирно, очень жирно, с этим чатом Хостер просто забанит, к е...ням айпишки с которых сыпятся запросы.
К тому-же, бесплатный доступ к MySQL естественно с кучей ограничений т. е.: на количество подключений, на количество запросов, на время обработки запросов и т.д.
При подключении к такому чату ~5 пользователей и активном общении он "ляжет" через час или раньше.
Хочешь снять ограничения - плати деньги!
Vanchila писал(а):
Да потому что многие CMS
У многих CMS за чат отвечает PHP скрипт а не база, и этот скрипт решает чего писать в базу.
И в этих скриптах люди уже подумали как уменьшит нагрузку на сервер, на базу, и т.п.

Все, доказывать ни чего, и ни кому больше не буду. Я так понял бессмысленно!
Чат на чистой базе - это бред, нонсенс! (Хотя и возможен)


карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#24: 2015-08-02 19:52:40 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2017-06-14 22:42:52
карма: 0

0
Ответов: 58
Рейтинг: 1
#25: 2015-08-02 20:42:20 ЛС | профиль | цитата
В общем я сделал так:


С FTP все понятно.Больше 3х подключений не поддерживает.
Правда получилось сделать и регистрацию и сам клиент,все работает,но не больше одного активного клиента.


С MySQL тоже не получилось,т.к. на этом сервисе 5 мб и они даются на 24 часа,по моему.


Сейчас разбираюсь с HTTPClient.Создал хостинг,на который залил php скрипт:
code_36098.txt
Из клиента получилось загрузить файл с помощью схемы:
code_36099.txt
Буду пробовать делать чат с помощью нового компонента,если получится.

------------ Дoбавленo в 20.42:
Правда теперь у меня другой вопрос на счет компонента HTTPClient.
Если файл на компьютере называется Hiasm123.txt,а мне надо отправить его на хостинг с другим названием,то как это сделать?
карма: 0

1
файлы: 2code_36098.txt [258B] [222], code_36099.txt [826B] [286]
Голосовали:sashaoli
Ответов: 824
Рейтинг: 138
#26: 2015-08-02 21:39:52 ЛС | профиль | цитата
Перед отправкой на сервер:
  • скопируйте оригинал во временную папку (определите сами эту папку)
  • переименуйте скопированный файл как вам надо
  • отправьте переименованный файл на сервер
  • удалите файл из временной папки
------------ Дoбавленo в 21.39:
Add(MainForm,3245018,364,140)
{
Width=360
}
Add(Button,5761700,364,252)
{
Left=60
Top=80
Width=105
Caption="Upload!"
link(onClick,9312969:doExecute,[])
}
Add(Label,9811927,406,182)
{
Left=15
Top=45
Width=49
Height=17
Caption="Filename:"
}
Add(HTTPClient,10245362,651,252)
{
Method=1
FileField="userfile"
Point(UploadFile)
link(URL,15065117:Text,[])
link(onFinish,13869187:doEvent1,[])
link(UploadFile,1021530:Var3,[(671,243)(643,243)(643,299)])
AddHint(42,93,44,13,Method)
AddHint(42,114,48,13,FileField)
}
Add(Label,2078934,364,182)
{
Left=20
Top=10
Width=29
Height=17
Caption="URL:"
}
Add(Edit,15065117,651,196)
{
Left=55
Top=5
Width=275
Text="/upload.php"
}
Add(Memo,12695097,763,238)
{
Left=10
Top=110
Width=325
Height=150
}
Add(ODialog,9312969,413,252)
{
Title="Выбрать файл для отправки на сервер"
FileName=""
link(onExecute,15520161:doEvent1,[])
}
Add(FileTools,3028183,602,252)
{
link(onEnd,10245362:doLoadString,[])
link(FileName,3529944:Text,[])
}
Add(Edit,3529944,602,196)
{
Left=65
Top=45
Width=265
Text="hiasm.txt"
}
Add(Hub,15520161,462,252)
{
link(onEvent1,3529944:doText,[(487,258)(487,202)])
link(onEvent2,7678784:doExecute,[])
}
Add(SDialog,7678784,504,259)
{
Title="Сохранить под новым именем и отравить"
FileName="rtf253258468.ccd"
link(onExecute,11909346:doValue,[])
}
Add(Memory,11909346,553,259)
{
link(onData,3028183:doCopy,[])
}
Add(FileTools,13748380,553,322)
{
link(FileName,1021530:Var2,[])
}
Add(Hub,13869187,707,259)
{
link(onEvent1,12695097:doText,[])
link(onEvent2,13748380:doDelete,[(732,272)(732,307)(543,307)(543,342)])
}
Add(GetDataEx,1021530,553,294)
{
link(Data,11909346:Value,[])
}

карма: 1

0
Ответов: 58
Рейтинг: 1
#27: 2015-08-02 21:41:41 ЛС | профиль | цитата
sashaoli, не смогу переименовать файл,потому что windows не поддерживает символы :?*/ и т.д.
Зачем мне это надо:
я решил создать для каждого диалога с каждым пользователем отдельную папку на сервере,и при отправке сообщения загружать файл с именем текста отправителя.Просто нету смысла изменять каждый раз один и тот же файл.При чтении сообщения не удобно будет каждый раз скачивать новый файл и открывать его.А так можно было просто просмотреть все файлы с названиями(то есть текстом сообщения),которые в папке диалога.
карма: 0

0
Ответов: 278
Рейтинг: 4
#28: 2015-08-02 23:52:30 ЛС | профиль | цитата
sashaoli писал(а):
Все, доказывать ни чего, и ни кому больше не буду. Я так понял бессмысленно!
Чат на чистой базе - это бред, нонсенс! (Хотя и возможен)
Вот и не надо ничего доказывать, раз возможен.

г. Mr. Braun писал(а):
Мне кажется, что MySQL - для создания чата жирно!
Кажется или ты уверен?) А то если уверен - то разговаривать то дальше, как с sashaoli смысла нет.

Ну а так, смотри, чисто гипотетически и если отбросить в сторону всё то, что кажется:
  • Есть 5 юзеров. Каждый из них раз в 10 секунд делает запрос на Update, т.е. пишет сообщение в Чат всем пользователям.
  • Каждый из них раз в 30 секунд делает 1 query запрос к БД, т.е. определённое кол-во последних сообщений из БД.
  • Получается, 6 Update в минуту от одного пользователя = 30 запросов в минуту от всех 5-ти пользователей, + 2 Query запроса в минуту от 1 = 10 запросов от всех 5-ти в минуту. Итого: 30 update + 10 query от всех пользователей в минуту при ОЧЕНЬ АКТИВНОМ общении.
    Не факт, что они будут писать через каждые 10 секунд (если это не школьники, пишушиие по одному слову 2-3 секунды). Т.е., запросов на Update по-факту будет меньше, а Query запросы можно и до 1-ой минуты на чтение поставить.

    Вопрос: чему тут ложиться? Каким должен быть сервер, чтобы лечь от столько запросов? Мы что, в средневековье что ли живём? Вроде бы уже 2015-ый год на дворе и в большинстве случаев у многих хостеров уже давным-давно всё в порядке с производительностью. Другой вопрос - в этом, конкретном, бесплатном, да. Он то мб и ляжет, тут спору нет. Не факт, конечно, но sashaoli в этом уверен, пусть будет так.

    Теперь о:
    sashaoli писал(а):
    У многих CMS за чат отвечает PHP скрипт а не база, и этот скрипт решает чего писать в базу.
    И в этих скриптах люди уже подумали как уменьшит нагрузку на сервер, на базу, и т.п.

    То, что люди продумали нагрузку при Чтении/Записи в БД из своей КМС - это вовсе ещё не значит, что общая нагрузка на БД от пыхи будет легче. Ведь в итоге пыха так или иначе записывает запросы в БД, как ни крути. Или, может, то, что она это делает с локал-хоста - это ей облегчает ситуацию? Возможно, да, но не на много, полагаю. Взять тот же IPB с Shoutbox'ом = форум + чат на аяксе, с ~250 хостов в сутки, к примеру. Посчитаешь, сколько Query + Update запросов выполняется в минуту даже от 5-ти хостов? И ведь там не по одному Query-запросу производится за раз от одного хоста, заметь. И ничего, Мускул не ложится. Даже при обычном VDS за 5$ с 512 RAM и слабеньким процом, при пыхе и апаче. Но тут, я так понимаю, я нечаянно завязался в спор с профессионалом по кол-ву запросов в минуту от баз данных на хостингах, поэтому, да,
    sashaoli писал(а):
    бессмысленно



    А вообще, Jonson, нормальный, полноценный чат ты не сделаешь ни на каком из перечисленных в этой теме способов.
    Здесь нужно копать с сторону VDS, WEB-сокетов и node-js. Там есть практически готовый чат с обновлениями в режиме реального времени, прямо как в ВК; ну, в ВК чат и сделан, собственно, на сокетах. Только вот... node-js под хайку пока что не адаптирован.
  • карма: 0
    Время верстки: %cr_time% Текущее время: %time%
    0
    Ответов: 146
    Рейтинг: 1
    #29: 2016-12-06 14:39:59 ЛС | профиль | цитата
    Здравствуйте подскажите пожалуйста с компонентами mySQL
    
    Add(MainForm,2953706,21,105)
    {
    Width=777
    Height=455
    link(onCreate,16449141:doOpen,[])
    }
    Add(dbMySQL,16449141,336,119)
    {
    Host="10.7.0.6"
    Login="admin"
    Password="123456"
    DBName="focus"
    Charset=5
    link(onError,11470494:doMessage,[])
    }
    Add(Message,11470494,518,119)
    {
    }
    Add(Button,589106,238,210)
    {
    link(onClick,6864810:doQuery,[])
    }
    Add(dbMySQL_Query,6864810,336,210)
    {
    link(onResult,14289160:doShow,[(380,216)(380,251)(324,251)(324,286)])
    link(dbHandle,16449141:dbHandle,[])
    link(QueryText,10530789:Text,[(349,202)(363,202)])
    }
    Add(dbMySQL_ShowQuery,14289160,336,280)
    {
    link(Rows,6864810:Rows,[])
    link(Fields,6864810:Fields,[])
    link(StringTable,82693:StringTable,[(356,264)(441,264)])
    }
    Add(StringTable,82693,421,203)
    {
    Top=25
    Width=392
    Height=273
    Font=[Arial,8,0,0,1]
    StrDelimiter="/0"
    ClearAll=0
    Redaction=1
    Point(doAddColumn)
    Point(StringTable)
    Point(onColumnClick)
    }
    Add(Edit,10530789,357,161)
    {
    Left=60
    Width=695
    Text="SELECT client.id, client.login_client, client.`password`, client.fio, client.group_list, client.black_list FROM focus.client"
    }

    у меня проблема с кодировкой. Сама база данных имеет кодировку UTF8, в компоненте dbMysql в поле Charset тоже выставлен параметр UTF8, но почему-то русские шрифты отображаются не корректно. Подскажите пожалуйста как еще можно подправить шрифты в программе?
    карма: 0

    0
    29
    Сообщение
    ...
    Прикрепленные файлы
    (файлы не залиты)