Я новичок в сетевых концепциях и нуждаюсь в разъяснении того, как реализовать коммуникационный протокол для отправки различных типов сообщений. В настоящее время я работаю над приложением Cocoa, которое будет отправлять видео сообщения между iPhone. В настоящее время я только отправлять сообщения типа 3. Вот поток приложения мне нужно реализовать:Как определить протокол связи?
Browsing доступны айфоны в сети (с помощью Bonjour)
Когда клиент iPhone найден, отправить NSData "запрос контактные данные" (MessageType1)
iPhone клиент посылает обратно экземпляр NSData с контактной информацией (MessageType2)
Init новое сообщение с записанным видео, отправить выбранному контакту (MessageType3)
Когда различные типы сообщений принимаются, они должны будут обрабатываться по-разному. Я предполагаю, что один способ решить эту проблему, чтобы добавить заголовок сообщения, которые идентифицируют тип сообщения и извлечь это на стороне приемника, а затем обрабатывать как это:
if (messageType == 1) // MessageType1
[self sendMyContactInfo:(Contact *)ownInfo];
if (messageType == 2) // MessageType2
[self updateViewWithContactInfo:(Contact *)contactInfo];
if (messageType == 3) // MessageType3
[self sendMessageToSelectedContact:(Message *)message]
Для создания сообщения для MessageType3, я буду сделайте это:
/* Not currently implemented */
NSMutableData *data = [[NSMutableData alloc] init];
int messageType = 3;
[data appendBytes:messageType]
/* Already Implemented */
NSData *encodedMessage = [NSKeyedArchiver archivedDataWithRootObject:message];
[data appendData:encodedMessage];
[self sendMessage:(NSData *)encodedMessage];
Это хороший способ сделать это? Если да, то должны ли правила протокола быть определены более формальным образом, например. в отдельном классе или что-то в этом роде? Я ищу наилучшее общее решение здесь, поэтому не обращайте слишком много внимания на мои рисунки, если есть лучший способ сделать это ...
Ницца, похоже, я был на месте без каких-либо предварительных знаний об этих вещах. Я думаю, что легкие концепции, вероятно, должны быть реализованы соответствующим образом. Спасибо, что подтвердили мою процедуру! –