For the complete experience, please enable JavaScript in your browser. Thank you!

  • Creative Cloud
  • Photoshop
  • Illustrator
  • InDesign
  • Premiere Pro
  • After Effects
  • Lightroom
  • See all
  • See plans for: businesses photographers students
  • Document Cloud
  • Acrobat DC
  • eSign
  • Stock
  • Elements
  • Marketing Cloud
  • Analytics
  • Audience Manager
  • Campaign
  • Experience Manager
  • Media Optimizer
  • Target
  • See all
  • Acrobat Reader DC
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player
  • All products
  • Creative Cloud
  • Individuals
  • Photographers
  • Students and Teachers
  • Business
  • Schools and Universities
  • Marketing Cloud
  • Document Cloud
  • Stock
  • Elements
  • All products
  • Get Support
    Find answers quickly. Contact us if you need to.
    Start now >
  • Learn the apps
    Get started or learn new ways to work.
    Learn now >
  • Ask the community
    Post questions and get answers from experts.
    Start now >
    • About Us
    • Careers At Adobe
    • Investor Relations
    • Privacy  |  Security
    • Corporate Responsibility
    • Customer Showcase
    • Events
    • Contact Us
News
    • 3/22/2016
      Adobe Summit 2016: Are You An Experience Business?
    • 3/22/2016
      Adobe Announces Cross-Device Co-op to Enable People-Based Marketing
    • 3/22/2016
      Adobe and comScore Advance Digital TV and Ad Measurement
    • 3/22/2016
      Adobe Marketing Cloud Redefines TV Experience
Developing Applications Help / 

Using WebSocket in point-to-point communication

Adobe Community Help


Applies to

  • ColdFusion

Contact support

 
By clicking Submit, you accept the Adobe Terms of Use.
 

Assume that the client need not send message to multiple clients. That is, the bi-directional communication is only between one client and server.

So unlike in the broadcast model, you do not need a channel for communication and therefore need not define it in the Application.cfc.

Do the following to set up a point-to-point communication:

  1. Create the WebSocket object using the cfwebsocket tag. For details, see Creating WebSocket object using cfwebsocket in Using WebSocket to broadcast messages.
  2. To send a message to the server, use the JavaScript method Invoke.
  3. To send additional messages, use the function WSSendMessage.

invoke

Description

Calls a particular function in the CFC. The value returned by the function in CFC is sent back to the client that invokes the method.

Syntax

invoke(CFCName, functionName [, argumentsArray])

Parameters

Parameter

Description

cfcName

The CFC filename (from where a specific function is called).

functionName

The function name in the CFC file.

argumentsArray

The function arguments as an array.

Usage

Use the function WSSendMessage to send additional message back to the client inside the function. To continuously send messages to a client you have to create a thread in the method that you invoke using invoke. Further, you can keep sending messages inside a thread.

Example

mycfwebsocketobject.invoke("employee","getdept",["eid_2"]);

WSSendMessage

Description

Sends messages to a specific client that invokes the method. This can be included as a part of the function that is called by the invoke WebSocket JavaScript method.

Returns

Nothing

Syntax

WSSendMessage(message)

Parameters

Parameters

Description

message

Required. The message object. This can be of type Any.

Example: Point-to-Point communication

The following example shows how to implement a point-to-point communication. In this example, you invoke three functions defined in mycfc.cfc.

  • Method f1 returns a value.
  • Method f2 expects an argument and returns a string. Also, client receives an additional message from the method WSSendMessage used in f2.
  • In the method f3, you create a thread that sends messages to the client at particular intervals.
  1. Create a CFM page index.cfm.

    <script type="text/javascript">
    function msgHandler(msgobj){
    var txt = document.getElementById("myDiv");
    var message = ColdFusion.JSON.encode(msgobj);
    txt.innerHTML += message + "<br >" + "<br>";
    }
    function invokecfcfn(){
    var fname= document.getElementById("fnname").value;
    if (fname == "f2") {
    alert("f2 selected");
    mysocket.invoke("mycfc", "f2", ["echo"]);
    }
    else
    mysocket.invoke("mycfc", fname);

    }
    </script>
    <cfwebsocket name="mysocket" onmessage="msgHandler"/>
    <form>
    <select id="fnname">
    <option>f1</option>
    <option >f2</option>
    <option>f3</option>
    </select>

    <input id="invokefn" name="invokefn" value="Invoke CFC function " type="button" onclick="invokecfcfn();">
    <div id="myDiv">
    </div>
    </form>

     

  2. Create a CFC mycfc.cfc that contains the function called from the client page.

    <cfcomponent>

    <cffunction name="f1" >
    <cfreturn "Message returned from f1">
    </cffunction>

    <cffunction name="f2" returntype="string" >
    <cfargument name="arg1" type="string" required="true" >
    <cfset msg= "Message from wsssendmessage of f2 which you called with arg " & arg1>
    <cfset wssendMessage(msg)>
    <cfreturn "Message returned from f2">
    </cffunction>

    <cffunction name="f3" >
    <cfthread action="run" name="t1" >
    <cfloop index="i" from="1" to="10">
    <cfset sleep(20000)>
    <cfset wssendMessage("Message #i# from wsssendmessage of f3 #now()#")>
    </cfloop>
    </cfthread>
    <cfreturn "Thread initiated in f3">
    </cffunction>
    </cfcomponent>

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy

Choose your region United States (Change)   Products   Downloads   Learn & Support   Company
Choose your region Close

Americas

Europe, Middle East and Africa

Asia Pacific

  • Brasil
  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States
  • Africa - English
  • Österreich - Deutsch
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Hrvatska
  • Cyprus - English
  • Česká republika
  • Danmark
  • Eesti
  • Suomi
  • France
  • Deutschland
  • Greece - English
  • Magyarország
  • Ireland
  • Israel - English
  • ישראל - עברית
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • Malta - English
  • الشرق الأوسط وشمال أفريقيا - اللغة العربية
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Polska
  • Portugal
  • România
  • Россия
  • Srbija
  • Slovensko
  • Slovenija
  • España
  • Sverige
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • Southeast Asia (Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam) - English
  • 台灣

Commonwealth of Independent States

  • Includes Armenia, Azerbaijan, Belarus, Georgia, Moldova, Kazakhstan, Kyrgyzstan, Tajikistan, Turkmenistan, Ukraine, Uzbekistan

Copyright © 2016 Adobe Systems Incorporated. All rights reserved.

Terms of Use | Privacy | Cookies

AdChoices