websockets

I've been spinning my wheels all day! I cannot for the life of me get
the new coldfusion method wspublish() to call correctly. It seems to
throw all kinds of wonderful exceptions regarding my application/
session locks (weird)???

Here is what I have:
Two channels declared on the Application.cfc page, each with their
relative event handler static class. From within one of my handlers, I
declare an event triggering my message broker service through
runEvent(), which in turn makes a call to the new wspublish method.

Within test.index I call runEvent(event='MessageBroker.invoke01',
private=true)
Within the invoke01 method, I create a map that various control plane
data that tells the client what to do. I then reference the rc.channel
that I set in the test.index method. With the JSON map and the channel
string, I pass those to the method wspublish(rc.channel, msg). This
should send the msg through the channel.

Honestly, I'm not quite sure what would cause the following error. I
apologize now for dumping the stack trace :slight_smile:

coldfusion.runtime.LockManager$InvalidScopeStateException: Cannot lock
session scope.
  at coldfusion.runtime.LockManager.getScopedLock(LockManager.java:221)
  at coldfusion.runtime.LockManager.requestScopedLock(LockManager.java:
115)
  at coldfusion.tagext.lang.LockTag.doStartTag(LockTag.java:191)
  at cfSessionEmissary2ecfc1614352108$funcGETSESSIONUSER.runFunction(/
Applications/MAMP/htdocs/::/model/session/SessionEmissary.cfc:71)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
  at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
  at coldfusion.runtime.UDFMethod
$ReturnTypeFilter.invoke(UDFMethod.java:405)
  at coldfusion.runtime.UDFMethod
$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
  at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:
55)
  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
  at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:654)
  at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:443)
  at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:413)
  at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2431)
  at cfTest2ecfc2049593497$funcINDEX.runFunction(/Applications/MAMP/
htdocs/::/handlers/Test.cfc:39)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
  at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
  at coldfusion.runtime.UDFMethod
$ReturnTypeFilter.invoke(UDFMethod.java:405)
  at coldfusion.runtime.UDFMethod
$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
  at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:
55)
  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:518)
  at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:659)
  at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:468)
  at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2372)
  at coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:402)
  at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2799)
  at cfController2ecfc1290786816$funcINVOKER.runFunction(/Applications/
MAMP/htdocs/::/coldbox/system/web/Controller.cfc:699)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
  at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
  at coldfusion.runtime.UDFMethod
$ReturnTypeFilter.invoke(UDFMethod.java:405)
  at coldfusion.runtime.UDFMethod
$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
  at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:
55)
  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
  at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2658)
  at cfController2ecfc1290786816$funcRUNEVENT.runFunction(/Applications/
MAMP/htdocs/::/coldbox/system/web/Controller.cfc:584)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
  at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
  at coldfusion.runtime.UDFMethod
$ReturnTypeFilter.invoke(UDFMethod.java:405)
  at coldfusion.runtime.UDFMethod
$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
  at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:
55)
  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:518)
  at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:659)
  at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:468)
  at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2372)
  at cfColdbox2ecfc1507394714$funcPROCESSCOLDBOXREQUEST.runFunction(/
Applications/MAMP/htdocs/::/system/Coldbox.cfc:236)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
  at coldfusion.runtime.UDFMethod
$ReturnTypeFilter.invoke(UDFMethod.java:405)
  at coldfusion.runtime.UDFMethod
$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
  at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:
55)
  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
  at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2658)
  at cfApplication2ecfc1876674721$funcONREQUESTSTART.runFunction(/
Applications/MAMP/htdocs/::/Application.cfc:58)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
  at coldfusion.runtime.UDFMethod
$ReturnTypeFilter.invoke(UDFMethod.java:405)
  at coldfusion.runtime.UDFMethod
$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
  at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:
55)
  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
  at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:654)
  at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:443)
  at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:413)
  at coldfusion.runtime.AppEventInvoker.invoke(AppEventInvoker.java:
104)
  at
coldfusion.runtime.AppEventInvoker.onRequestStart(AppEventInvoker.java:
274)
  at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:
399)
  at
coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:
48)
  at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:
40)
  at coldfusion.filter.PathFilter.invoke(PathFilter.java:112)
  at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:30)
  at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:75)
  at
coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:
28)
  at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
  at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
  at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
  at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:
22)
  at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)

I omitted past the java container....and the directory structure past
the container.
So, session management is turned on, and IOC is not running as of yet.
Any help would be greatly appreciated!

Thanks...Matt B