?
Solved

one-way instant message

Posted on 2004-08-07
15
Medium Priority
?
352 Views
Last Modified: 2013-12-24
I am interested in having our intranet site incorporate a one-way messaging feature for supervisors to relay information back to employees. Preferably in CF, the supervisor would login to the admin section from which he can send off a broadcast message that would show up on each computer (intranet is on active desktop).

I'm just not sure where to start with this, any ideas and or links would be helpful.

thanks
0
Comment
Question by:urbanc
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 3
  • +2
15 Comments
 
LVL 5

Expert Comment

by:Seth_Bienek
ID: 11743402
What IM platform are you wanting to connect with?  AIM, ICQ, MSN, Yahoo, SameTime?

It's doable but you will need information about the messaging protocol you intend to use.

Regards,

Seth
0
 

Author Comment

by:urbanc
ID: 11743527
Well I wasn't wanting to use msn messenger or aim or anything like that. just have it all embedded on the actual page. without using a seperate program like msn, yahoo, aim.

0
 
LVL 5

Expert Comment

by:Seth_Bienek
ID: 11744021
So it sounds like what you are wanting to do is allow supervisors to insert some text into a database, and then have the desktop clients poll the database for available messages.

Unless you have active the desktop refreshing itself or an element (ie a hidden div or iframe) using javascript, there's not really a way for the polling to happen automatically.

Then, unless you're having the users login to the intranet site, or your network is set up with static IP addresses, you won't be able to tell who has received the message and who has not.

That's not to say it isn't doable - the main question I'm prompting you to ask yourself is, is this the most practical approach to solve the problem?  Without knowing too much about your needs for this project, it seems like what you are describing is a good application for plain old e-mail.

Regards,

Seth
0
Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

 

Author Comment

by:urbanc
ID: 11745225
True, it might not be the most practical method, but we also don't have the capacity to provide so many emails and probably the main reason for not providing emails to all employees is because it will become another distraction from their actual work.

I just thought this might be an efficient way to provide information (ie. updating the status of a current project) to employees on a regular basis, in a way that is least distracting and is easy for all employees to view.

0
 

Author Comment

by:urbanc
ID: 11745300
Seth, if each computer was assigned static addresses, how would you be able to verify which computer has received a msg? and if that is possible, would it not be possible to send a msg to specific computers via assigned ip addresses?

0
 
LVL 21

Assisted Solution

by:pinaldave
pinaldave earned 300 total points
ID: 11745521
Hi urbanc,

as seth said before you need to know about socket to connect to them using the TCP/IP as this is the way to know where you sent msg and if they have received or not. Your idea of instant msg is great but that is instant msgr is not it? what you want is that if they have something to tell they can send instant msg one way through coldfusion applciation.
now you will have to create some application of the coldfusion which runs beyond your browser and inform the user when he receives the msg.
OR what we need is that we need to create such a system, when there is mesg on your perticular TCP/IP protocol it opens up the browser and informs the user that this is the news.
OR what we need is that when the msg is received it will show up on your users existing page that the msg is for him.

Well all this options has lot to discuss and may be /may be not that possible. Well, I love CF but I do not see CF doing IM job as this is web based application and does my life easy with its simplicity with database. Also, when we receive the msg on TCP/IP network on some specific port and open the browser sounds like some kind of web service. Also you may need to create the client to  listen the network port continuolsy and when ever it receives the msg it has to launch its specific web application( or browser) to display the msg.


========================= My suggestion
This is what we are doing with our system, we have CMS and whenever supervisor writes something for any perticular person only he can see the comments and discuss using discussion thread. Other does not have any access. Also we have kept that web page auto refreshing and fixed size of the browser so it is like a bar at the bottom of the screen.  We launch in the mornig and keep it on the top (manually) and if there is anything new it will show as it refreshes every min, and will display the msg and we do two way discussion like msg board there. It is fun.
========================== END


Regards,
---Pinal
0
 
LVL 5

Accepted Solution

by:
Seth_Bienek earned 300 total points
ID: 11746687
Hey urbanc,

If each computer was assigned a static IP address then you would have a table in your database with basically 2 columns (probably more, but for demonstrative purposes let's stick to the main 2 columns): IP_ADDRESS and USERNAME.

First you would have to enter the IP address and corresponding user's name into the table for every computer using the system.  If you wanted to automate this, and trust the users to enter the right name, you could create a web form for this.

Next, you would create a session or client variable for the user whenever they visit the site, to remember their name.  Something like this in your application.cfm:
<cfparam name="client.username" default="">
<cfif not len(trim(client.username))>
  <cfquery name="lookup"... >
    SELECT username FROM users WHERE ip_address = '#cgi.remote_addr#'
  </cfquery>
  <cfset client.username = lookup.username>
</cfif>

Then, based on the value of client.username,  you would know who's at the other end of this page request.

As far as keeping track of who's seen what messages, you would need two more tables.  One to contain the messages themselves - let's say a table called MESSAGES, with columns MESSAGE_ID and MESSAGE_TEXT (again, just two columns for demonstrative purposes), and another table called MESSAGES_QUEUE, with columns MESSAGE_ID, IP_ADDRESS, and DELIVERED.

Whenever a message is generated, you would SELECT all the rows from USERS (for broadcast delivery) or just the ip_address for specified users for 'addressed' messages, and insert a row for each user into the MESSAGES_QUEUE with the new message_id and ip_address for each user, and set the delivered column to have a value of '0' for 'not delivered'.

Then to check for messages a user has not yet seen you would join those two tables, and you would want to mark the messages_queued.delivered column as '-1' (ot true) when a message for a given user has been viewed.

I'm trying to sum up a decently complex app in a small space here, so there may be some vague spots, but I think I've covered the general framework.

Regards,

Seth
0
 
LVL 21

Expert Comment

by:pinaldave
ID: 11746857
Good explaination Seth here and also in my Q. Thanks! :-)
0
 
LVL 2

Assisted Solution

by:russmichaels
russmichaels earned 300 total points
ID: 11757954
Simply have a webpage where a user logs in and then displays any new messages for that user.
The page will regularly refresh itself and check the database for new messages for that user.
If a message does exist you can use javascript to focus() the browser window so it pops up or comes to the front.
If your using active desktop then you can place a small window on users desktops that will act as a webpage.

Your sysadmin then has a simple interface where he can select a user and send them a message which will then popup on their desktop.

you do realise that windows network already have the facility to send messages to other users on a network, it's called the messenger service.

To use it, simply open a command prompt and type

net /?

this will give you help on the net command

using "net send" will allow you to send messages to other machines

E.G

net send MACHINENAME "message"
will popup a windows alert on that persons machine.


For what your asking, this seems like a simpler solution.

HTH

Russ Michaels
0
 
LVL 21

Expert Comment

by:pinaldave
ID: 12070660
I think, I should also have points here for good suggestion along with other two experts.
Regards,
---Pinal
0
 
LVL 2

Expert Comment

by:russmichaels
ID: 12105068
Well it's for others to decide if your suggestion was good or not, not you. Personally I don't think it was any good. But you got points for your moaning anyway, so be happy.
0
 
LVL 35

Expert Comment

by:mrichmon
ID: 12105169
Personally I agree with russmichales.

Just because you comment does not mean your comments deserve points.

You often complain that you should get points just because you made a comment, but really the points should go to the comments that are the BEST and MOST COMPLETE answers for the question - not to everyone who participates.

I carefully read each comment when making a recommendation and sometimes select your comment as the answer and sometimes select other comments.  But you almost always post a complaint if your comment is not selected - even if it really wasn't the best answer or even if it didn't answer the question at all. In this post you even start out as saying "as seth said..." which further indicates that Seth's answer is probably a better one to select.

Before complaining that you should get points it would be nice if you also carefully read all of the responses and considered them objectively.
0
 
LVL 21

Expert Comment

by:pinaldave
ID: 12105384
Thank you all,
I will say, We are using the system which I have suggested and I strongly believe in what I said.
I will rather avoid arguments here about what is correct or not. I strongly believe that everybody has right to say what they want to say.
Your opinion is valuable. When I say some body is good does not mean that I am bad. Praising someone else is good thing, if they are better.
Again, I only post comment when I think, I am correct. I will never worry/argu if other are not incorrect. I do not believe in that.
Regards,
---Pinal
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Most ColdFusion developers get confused between the CFSet, Duplicate, and Structcopy methods of copying a Structure, especially which one to use when. This Article will explain the differences in the approaches with examples; therefore, after readin…
When it comes to showing a 404 error page to your visitors, you do not want that generic page to show, and you especially do not want your hosting provider’s ad error page to show either. In this article, I will show you how to enable the custom 40…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Suggested Courses

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question