I managed to solve the issue and correctly assign a color to each user. This is how the final code looks like: function randColor(){ var letters = '0123456789ABCDEF'.split(''); var color = '#'; for (var i = 0; i < 6; i++ ) { color += letters[Math.floor(Math.random() * 16)]; } return...
search for keywords instead of full phrases: @echo off :loop set /p input="> " echo %input%|find /i "hi" >nul && echo Hello. echo %input%|find /i "your name" >nul && echo My name is Rob. What's yours? echo %input%|find /i "my name is" >nul && echo That's a nice name. echo...
android,android-listview,chat,android-recyclerview
It can be done with recyclerview. Here is what I did for displaying multiple types of rows in a single recyclerview // Different types of rows private static final int TYPE_ITEM1 = 0; private static final int TYPE_ITEM2 = 1; public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { class ViewHolder0 extends RecyclerView.ViewHolder...
Not using the ACL file, but mosquitto supports a plugin system for ACLs e.g. https://github.com/jpmens/mosquitto-auth-plug/ This allows you to store ACLs in a database which can be updated on the fly...
android,sockets,android-gcm,chat
Check this link for chat api. http://quickblox.com/developers/Android...
In the original chatdemo, this is what the cursor parameter to wait_for_messages is for: the browser tells you the last message it got, so you can send it every message since then. You need to buffer messages and potentially re-send them in wait_for_messages. The code you've quoted here will only...
python,python-3.x,chat,server,messaging
I'm going to go out on a limb and say you forgot the following line: record = ChatRecord() You import the class but never use it in the server-side code. Note that you misspelled list.append() in the ChatRecord.add() method: def add(self, s): self.data.appent(s) # ^ ...
facebook,api,facebook-graph-api,facebook-javascript-sdk,chat
https://developers.facebook.com/docs/chat/ The service and API this document covers has been deprecated with the release of Platform API v2.0. Once version 1.0 is deprecated, chat.facebook.com will no longer be available. There are no plans to replace the Chat API. But even with the Chat API, i would see 2 problems: User...
Public Group doesn't have the occupants ids because it's an open group, so any user can join it, don't need to store occupants ids
php,sockets,websocket,socket.io,chat
You may pass user ID from client to server while handshaking and make user join the group (e.g. "user5"). Then you can emit to this group: client side: var id=$('#id').html(); var socket=io.connect('http://localhost:8010', { query: 'userId=' + id }); server side: io.sockets.on('connection',function(client){ var userId = client.handshake.query.userId; client.join('user' + userId); //from now...
python,client,chat,twisted,server
You made a mistake in the client. Basically, server expects to receive lines, meaning data terminated by newline. However, client sends data without newline character at the end. So, to fix client, just add \r\n to the data: self.transport.write(data + "\r\n") Here is client protocol: class EchoClient(protocol.Protocol): def sendData(self): data...
javascript,node.js,socket.io,chat
For first error you will have to use listen method of socket.io, otherwise it don't work ( while I was following this according to socket.io chat example ) var io = require('socket.io').listen(http); the second prompt or problem, which suppose to be working but somehow you must have to define url...
ios,xmpp,chat,quickblox,privacy
Finally found its solution. The flow and logic i had written in my question was perfect. I was just remaining with the one small function to activate the privacy list. Dont know why QuickBlox has not written that function call in their demos. [[QBChat instance] setActivePrivacyListWithName:@"public"]; Same in XMPP we...
First: The bad news: deepstream.io is purely a messaging server - it doesn't look into the data that passes through it. This means that any kind of querying functionality would need to be provided by another system, e.g. a client connected to RethinkDB. Having said that: There's good news: We're...
html,html5,chat,semantic-markup
WHATWG's living standard says: This specification does not define a specific element for marking up conversations, meeting minutes, chat transcripts, dialogues in screenplays, instant message logs, and other situations where different players take turns in discourse. Instead, authors are encouraged to mark up conversations using p elements and punctuation. Authors...
Your software is not designed to handle client to client communication. To achieve this you would have to: store your client Handlers on the server (not throwing them away; use something dynamic like a LinkedList) add a method to the Handler that allows to sent arbitrary messages to the Client...
Try using this in declaration instead of what you are using now <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>...
It depends on the back-end server technology. Currently, my company uses a popular protocol called XMPP, which has many server-side and client-side implementations. To develop XMPP based apps for iOS, you can use xmppframework.
Here is how it should be done http://quickblox.com/developers/Android_XMPP_Chat_Sample#Create_new_group_chat_dialog
java,swing,styles,chat,jtextpane
This is so obvious - not sure if qualifies for an answer. Anyway Why are you doing GUI.appendReceivedMessages(""+doc); ? that is causing the doc object's default toString to appear. Hope that helps EDIT: so what can I do here I guess you can do it like this : Note that...
I know this question has been answered, but I wanted to throw in another possible solution. It is, as these things go, a simple one with some catches and caveats, but for a class project it would suffice. The example I am proposing is not one that I have created...
python,websocket,chat,real-time
You need to use a websocket aware web server, like Tornado to handle websocket traffic. To multiplex chat messages between different chats and users, there are solutions like Redis and ZeroMQ that you can use for message multiplexing. However, it sounds like you have zero experience and starting point, so...
javascript,jquery,angularjs,date,chat
check if the date for today has already been shown (in variable), and if so, do not show it. Upon the next day, that same logic will show the date at the beginning, and not show it until the next day..
For being able to connect devices for peer to peer connection you have the following options: 1. Wifi Direct 2. Bluetooth 3. Wifi Hotspot Here is a basic tutorial on how to build a chat over wifi direct http://developer.android.com/guide/topics/connectivity/wifip2p.html And for bluetooth http://developer.android.com/samples/BluetoothChat/index.html You can also import these sample projects...
Here is how to use QBParticipantListener for version 2.1: private QBParticipantListener participantListener; participantListener = new QBParticipantListener() { @Override public void processPresence(QBGroupChat groupChat, QBPresence presence) { } }; private QBGroupChat currentChatRoom = ...; currentChatRoom.addParticipantListener(participantListener); http://quickblox.com/developers/Android_XMPP_Chat_Sample#Get_online_users...
jquery,signalr,chat,browser-tab
Clients.Client will send to one connection, each tab has its own connection. If you want to send to a specific User use Clients.User Sending to active tabs seem strange? If he switch tab the others wont be up to date?...
redirect,chat,message,profile,skype
Skype doesn't support incoming text messages - you can set up an SMS ID which allows you to send SMS messages from Skype and receive the answer to your mobile phone. To do this, go to Skype -> Preferences -> Messaging. After you have validated your mobile number, all SMS...
android,api,jmeter,chat,performance-testing
You can use Regular extractor post processor like, Assuming your response is like {"response":{"httpCode":200,"Message":"True","Code":"5858"}} your regular expression will be like to extract code value but for specifiic phone no you need to modify it a little bit, "Code"\:"(\d+)" for occurance detail you can provide which match no. you want. Refer...
You will frequently see this kind of linker error when the sources files containing a particular definition you are using are not being compiled, despite their declarations being in a header file you are importing. You can fix this by adding the appropriate source files to the "Compile Sources" build...
while sending data from server you must be typing Hello then pressing ENTER key which is nothing but \r\n. So client is reading it as Hello\r\n. So you must be getting two characters extra. I hope it works for you. You can check this by looping through input buffer and...
There are several SDKs available. Here are some: QuickBlox [SaaS] fireBase [SaaS] CometChat [One time cost] Scringo [No longer available] And others- AcaniChat, Talkray. Also have a look at this article....
You could use Rich text editor or any HTML Editor to use it as chat window. I personally had used RTE first then replaced it with HTML Editor
javascript,node.js,sockets,express,chat
The problem is that in layout.jade, you're including chat.js twice doctype html html block head title= title link(rel='stylesheet', href='/css/site.css') script(type="text/javascript" src="/lib/jquery/dist/jquery.js") script(type='text/javascript', src='/socket.io/socket.io.js') script(type='text/javascript', src='/javascripts/chat.js') script(type='text/javascript', src='/javascripts/chat.js') body header#banner //h1 Awesome Chat block content //footer Hope you enjoy your stay here ...
html,vb.net,webbrowser-control,chat
The content is written out dynamically using JavaScript. So it isn't part of the page source itself, but is part of the "state" of the page. See this answer for some details. How to get rendered html (processed by Javascript) in WebBrowser control?...
JID is an indispensable part. Always use JID to login. The JID is combination of username and server name. So, in my case the JID would be [email protected] i.e [email protected] as the username is dhmohn and server name is saint-pc. Please take a note, if you login with the following...
mongodb,mongoose,chat,schemaless
If I understand correctly, you want to keep track of the status of a message. A message is sent by one person, but can be received by many. The status of the message depends on which recipient we're talking about - Joe may have read the message from Tim, while...
Finally i satisfied with customData property in QBUUser. I just created a dictionary and set url in that dictionary within some Key. Than created its JSON string and set it in the QBUUser property customData and updated it and it worked. Here is its small code snippet. QBUUser *user =...
I assume the binder that you are trying to add users (using their unique id) was also created by an user who got created in Moxtra using unique_id method. In that case using the REST API to add team member is the right approach to add additional users to the...
Everything is ok. Perhaps it was related with problems on internet connection or XMPP servers. How often does this problem reproduce\appear in app Could you reproduce this bug by yourself, if you could please describe the steps to reproduce this bug below?...
javascript,node.js,mongodb,chat,history
I tried your code and it's working fine. It's normal for doc to be null on the last invocation of the each callback as an indication that the cursor is exhausted (see the comment in the example code of the docs for each). All I did to your code was...
In XMPP, you can use the specification Message Archive Management to achieve this.
Here is an example using "C" and "select" on Linux: http://www.binarytides.com/multiple-socket-connections-fdset-select-linux/ Here is an example using "poll": http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzab6/poll.htm...
java,sockets,udp,chat,livechat
The problem might be because of Network Address Translation done by the router. I believe you are sending packets to correct IP address but the port is not correct. The port to which you might be sending the packets is the local port to the machine. You need to send...
I would not implement all of that on my own nor host the service myself. You should think about using an existing system for this. (I am not in any way affiliated with the next suggestions) I have used: firebase.com and parse.com Both should work for your usecase, but firebase...
html,vb.net,string,chat,data-extraction
If anyone else is interested in such an operation, I've managed to simplify the process by applying the HTML code to another webbrowser then using the Document.Body.InnerHtml property to get the text output in a richtextbox, so I can easily deal with the text instead of dealing with the HTML...
ios,search,chat,customizing,jsqmessagesviewcontroller
First of all: JSQMessagesViewController subclass of UIViweController. This means that you can easily add subviews. You almost done all correctly in Attempt 2 but you set incorrect frame. I suggest you to use auto layout for this as in code below: Swift var searchBar: UISearchBar!; override func viewDidLoad() { super.viewDidLoad()...
The following changes should be done to the queries: Retrieve only your messages: $query = "SELECT `Author_ID`, `Message` FROM `pdo_ret`.`chat` WHERE Recipient_id = '$Recipient_id' ORDER BY `Msg_ID` ASC"; Specify the recipent: $query = "INSERT INTO `pdo_ret`.`chat` (Msg_ID, Author_ID, Recipient_id, Message) VALUES (null, '{$Author_ID}', '$Recipient_id', '$message')"; ...
Finally I figured out what was occurring in my code. In iOS, my iPhone was with Settings > General > Date & Time > Time Zone - Automatically switch turned off. My clock was 2 minutes early, then when the list messages with dialog request was being sent, I used...
As I described in comment: public String encrypt(String input, int key){ char[] chars = input.toUpperCase().replaceAll("[^A-Z]", "").toCharArray(); for (int i = 0; i < chars.length; i++){ chars[i] -= 65; chars[i] = (char)((chars[i] + key) % 26); chars[i] += 65; } return String.valueOf(chars); } public String decrypt(String input, int key){ char[] chars...
javascript,node.js,socket.io,chat
io.socket.on should be io.on. io.socket.emit should be socket.emit. As in: io.on('connection', function(socket) { socket.on('send message', function(data){ socket.emit('new message', data); ); }); ...
ios,swift,authentication,chat,quickblox
You should use a shared instance of QBChat for working with chat. QBChat.instance().addDelegate(self) QBChat.instance().loginWithUser(currentUser) Also check setAutoCreateSessionEnabled method in QBConnection. You can forget about session management....
I decided to go with the performance > security since security in this case isn't that much of a big deal. Here is how I solved it: senderdata = irc.recv(2048) #gets output from IRC server linecount = senderdata.count('\r\n') if(linecount == 1): print senderdata print "Single message" tryComment(senderdata) elif(senderdata.find('tmi.twitch.tv JOIN '...
You haven't started the RMI Registry.
chat,lync,instant-messaging,ucwa
If ucwa Api has a provision for sending and receiving formatted text messages? The formatted messages you see in the Lync Client are really Html formatted messages which Ucwa also supports. To enable the receiving of these type of messages there are two options. The application can either include it...
I fixed this by setting a session variable when cron runs and then where the module asks on which pages to display it, I return false if the session variable is set. It's definitely a hack, but the real solution is to propose quite a few changes to the module....
First, put position:relative on a parent container #container{ position:relative; } then, put position:absolute on the chat window #chat{ position:absolute; bottom: 0px; } This should handle dynamic heights....
performance,xmpp,jmeter,chat,smack
JMeter Test Script Recorder can only record HTTP traffic through proxy so if you configured proxy for smack plugin then recording cannot happen due to protocol not being understood. Otherwise it's proxy misconfiguration....
After user clicked "send" button message should appear in his chat with icon "in progress", as soon as server confirmed that message is received - icon should be removed or changed to "received", in case of timeout - change icon to "error" with possibility to retry sending Doing this way...
javascript,jquery,html,textarea,chat
Okay, so I've used a JavaScript timer to run the clearing function 300 ms after clicking the submit button. Works. Thanks all :)
I found an answer from Igor Khomenko in this topic: Quickblox messaging fetch last n messages and applied. It was correct and I improved inverting the Array with the messages, to show correctly to the user: NSMutableDictionary *extendedRequest = [NSMutableDictionary new]; NSDate *now = [NSDate date]; extendedRequest[@"date_sent[lte]"]= @([now timeIntervalSince1970]); extendedRequest[@"sort_desc"]=...
if-statement,delete,chat,where,messages
Most likely you have run into the problem that the IF() function returns either a string or numeric value. But you seem to expect that it returns a boolean value. (SQL has not boolean data type.) So you have to use an alternative to IF(): SELECT * FROM messages WHERE...
There are probably other solutions out there - but it's easy enough if you just place the dates in their own containers and align them separately. Here's a solution using a new CSS class "bubble-line": /* Bit of normalisation */ body { background-color: #eee; color: #222; font: 0.8125em/1.5'Helvetica Neue', Helvetica,...
ios,iphone,xmpp,chat,quickblox
For retrieving the all members of the group first fetch the particular dialogue for which you want to get the member and it gives you this kind of response. Dialogs: ( ID:554864c6535c12ac9a0f63dc Room JID:[email protected] name:3 photo:(null) type:2 lastMessage:(null) lastMessageDate:(null) occupantIDs:(\n 2067069,\n 2107873,\n 2976970\n) userID:2976970 unreadMessagesCount:0 lastMessageUserID:0" ) here you can...
java,android,chat,openfire,asmack
Use this to get list of room names that the user has joined: Iterator roomsJoinedByUser = MultiUserChat.getJoinedRooms(connection, "[email protected]"); Use this to get list all hosted rooms: Collection<HostedRoom> rooms = MultiUserChat.getHostedRooms(connection, "service_name"); ...
ios,objective-c,sockets,chat,real-time
Assuming you've got your server side things setup, you can use Square's Socket Rocket to implement the client side https://github.com/square/SocketRocket If you're using socket.io at the backend, there are plenty of iOS libraries available for those as well. SIOSocket is one such library....
java,netbeans,client,chat,server
Here comes the multiThreading program :) the server has two classes, and client has one. Hope you Like it! SERVER MAIN CLASS: import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Main { public static void main(String[] args) throws IOException { int MAXCLIENTS = 20; int port = 4444; ServerSocket server...
angularjs,get,socket.io,chat,http-status-code-403
The problem was a library left.. on HTML: <script type="text/javascript" src="libs/angular-socket-io/mock/socket-io.js"></script>...
You can add a boolean column (PFUser Class) where it changes to TRUE when the user opens the app, and changes to FALSE when the app is closed (or in background)
ios,parse.com,nsarray,chat,pfquery
You cannot access self.senderMsg and self.messages in these lines NSLog(@"DESTINATEUR MSG : %@", self.senderMsg); NSLog(@"EN DEHORS QUERY : %@", self.messages); because its executed before the Asynchronous request is completed. [query1 findObjectsInBackgroundWithBlock:] is an asynchronous function that is excecuted in a background thread. After calling those functions the execution inside viewDidLoad...
ios,objective-c,chat,quickblox
You can mark all messages as read just passing nil as the array parameter [QBChat markMessagesAsRead:nil dialogID:dialogId delegate:self]; In that case ALL your messages should be marked as read...
java,android,nullpointerexception,chat
This: java.lang.NullPointerException: Attempt to invoke virtual method 'int org.json.JSONArray.length()' on a null object reference at com.example.ibm_admin.chat.UserFragment$Load.onPostExecute(UserFragment.java:84) means, that in file UserFragment.java at line 84 in inner class Load of class com.example.ibm_admin.chat.UserFragment there is method length was called on some object, which is null. I suppose, that is this line: for(int...
ios,chat,jsqmessagesviewcontroller
Instead of removing from superview and having to add back as a subview, why not just use: [self.inputToolbar setHidden:YES]; ...
sql-server,database-design,indexing,chat
You probably should add a surrogate primary key to your messages table and create an index: ALTER TABLE messages ADD COLUMN id BIGINT NOT NULL IDENTITY ALTER TABLE messages ADD CONSTRAINT pk_messages_id PRIMARY KEY (id) CREATE INDEX ix_messages_sender_receiver_date (senderId, receiverId, date) ON messages If you want to retrieve, say, just...
As you've stated there are many ways to implement that kind of structure but I am going to write about node.js + socket.io part; 1) It is scalable. You can use cluster, nginx, haproxy. etc. to apply load balancing to your socket.io application (see here) Of course you've to use...
You could try this: MongoClient.connect('mongodb://127.0.0.1:27017/gt-chat', function(err, db) { if(err) throw err; var collection = db.collection('gt-chat'); console.log("******************************Printing docs from Cursor Each") collection.find({}, {_id: 0}).sort({$natural: 1}).limit(20).each(function(err, doc) { console.log(doc); if(doc != null) { console.log("Doc from Each "); console.dir(doc); } }); }); EDIT To write to browser, use the response object as follows...
jquery,asp.net,signalr,chat,private-messaging
I suggest you use an IUserIdProvider. The default one generates user names from the client's IPrincipal.Identity.Name, but you can provide your own: http://www.asp.net/signalr/overview/guide-to-the-api/mapping-users-to-connections#IUserIdProvider This allows you to send messages using .User(userName) instead of .Client(connectionId). The article I linked to also provides a few alternatives such as single-user groups for messaging...
Twitch uses a standard protocol for chat. spacificlly IRC. Therefore, an API is not needed. http://help.twitch.tv/customer/portal/articles/1302780-twitch-irc
android,chat,openfire,smack,asmack
try adding these lines when configuring your connection configBuilder.setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.required ); SASLMechanism mechanism = new SASLDigestMD5Mechanism(); SASLAuthentication.registerSASLMechanism(mechanism); SASLAuthentication.blacklistSASLMechanism("SCRAM-SHA-1"); SASLAuthentication.unBlacklistSASLMechanism("DIGEST-MD5"); ...
If the problem is, that bot asks his question first, then you type your question/answer...etc, and you want to be the first, then just ignore what the bot sends. When you load the page, and chat starts, clear whatever was in the chat window. //first- start by emptying whatever bot...
I get the answer from other forum: http://forums.asp.net/p/2039166/5875383.aspx?Concurrent+connections+problem+in+signalR+hub
Your chat server should not blindly add entries to the database directly from the client. You should have the client send a subset of the data contained in an entry (e.g. send just the "shout" attribute), and have the server infer the rest of the information from the connection-specific and...
javascript,php,node.js,mongodb,chat
There are no errors because there are not any errors. Everything is working perfectly but you don't know that. That's why it is a good practice to log on which port is the server running. For example add in the end of server.js: console.log('Server running on port: 8080'); You could...
Well I solved this problem with code ps. similary like say Iwan1993 but on my way first ADD Time column in database with type datetime next changed SELECT $query = "SELECT `Sender`, `Message`, DATE_FORMAT(`time`,'%d.%m.%Y/%H:%i:%s') as 'time' FROM `chat`.`chat` ORDER BY `Msg_ID` DESC"; then changed while while($message = mysql_fetch_assoc($run)){ $messages[] =...
So for each user create an property(it could be string or typdef-for multiple states like online, offline, busy, undefine, etc.) And then update this property to the appropriate state whenever this is necessary. So if user press logout you change it to offline, if user close the app or activate...
IRC is an old protocol (think 25 years), and is from a time that internationalisation, and universal character sets did not exist. From the latest RFC on the protocol, RFC2812, a nickname has to be of the format: nickname = ( letter / special ) *8( letter / digit /...
java,android,sockets,chat,bufferedreader
You're using a BufferedReader and read it with in.readLine(), which, surprise surprise, will return the next line in the response. A line is a string terminated by a newline character, so your BufferedReader will have to wait until it sees a newline until it can return your line. If you...
You could try out this this link. You need NodeJS and NPM. Then, install every dependencies: $ npm install Open a websocket for each port you want: $ node demo/server.js 9001 9002 9003 Then connect your client using your code you posted....
JOIN and GROUP BY should give you the required results select CR.roomname, count(CO.chatterID) as ChattersCount FROM chatrooms CR JOIN chatters_online CO on CO.room = CR.id GROUP BY CR.roomname ...
The important message in the log is: <host-unknown xmlns='urn:ietf:params:xml:ns:xmpp-streams'/> This is because you tell the server you are connecting to mail.speedymx.com, but the server only knows speedymx.com. You should set HOST to the correct value. If the XMPP server for speedymx.com is in fact running on mail.speedymx.com, then you should...
You need to update the internal ItemsPanelTemplate of the ListBox... try this: <ListBox Name="ListBoxMain" Grid.Column="1" Grid.Row="1"> <ListBox.ItemTemplate> <DataTemplate> <WrapPanel> <TextBlock Text="{Binding User}" FontWeight="Bold" /> <TextBlock Text=": " FontWeight="Bold" /> <TextBlock Text="{Binding Text}" Width="225" TextWrapping="Wrap" HorizontalAlignment="Stretch" /> </WrapPanel> </DataTemplate> </ListBox.ItemTemplate> <ListBox.ItemsPanel>...
android,client,xmpp,chat,smack
FINALLY GOT SOLUTION The issue is not with the client but due to careless coding. I have been assigning single instance of connection object to a class variable and listener is adding to these reference object every time. So that leads to calling listener multiple times....The fix is done by...
sql-server,indexing,chat,primary-key
Yes, you should define a primary key clustered index on the ID column. Yes, you should define a nonclustered composite index on (User1, User2, Date). ID is already "included" in the nonclustered index if you define ID as the clustered index....
The problem was that I used hardcoded string in my project and Android Studio used windows-1252 encoding, so my String was broken by default.
Here are several files that may help you with developing a messaging system for your LAN. Simple_Server.py #! /usr/bin/env python3 import socket, select def main(): a = [socket.socket(socket.AF_INET, socket.SOCK_STREAM)] # socket array a[0].bind(('', 8989)) a[0].listen(5) while True: for b in select.select(a, [], [])[0]: # ready socket if b is a[0]:...
python,dictionary,chat,prepend
First of all it doesn't added the item at the end of dictionary because dictionaries use hash-table to storing their elements and are unordered. if you want to preserve the order you can use collections.OrderedDict.but it will appends the item at the end of your dictionary. One way is appending...
I used a textarea. With setEditable you cant edit it and scrollArea make it scrollable u know. textArea.setEditable(false); scrollArea = new JScrollPane(textArea); ...
I FINALLY FOUND IT! For any future people encountering a similar problem, the problem was that I was assigning the ip variable in the wrong place! This essentially resulted in the list of ip's being all the same! Another bug confounded that problem, in that when I disabled the sending...
ios,objective-c,cocoa,chat,jsqmessagesviewcontroller
You can add a status enum in your JSQMessage model class to represent different delivery status flags. and in your JSQMessagesController subclass you can override this method : - (NSAttributedString *)collectionView:(JSQMessagesCollectionView *)collectionView attributedTextForCellBottomLabelAtIndexPath:(NSIndexPath *)indexPath and return an NSAttributedString matching the delivery flag you want to show. Bear in mind that...