java - MissingSessionUser Exeption in Sockjs with Spring -



java - MissingSessionUser Exeption in Sockjs with Spring -

i trying create chat application websocket. able send message of connected client, , trying send message single user.

script:

var socket = new sockjs("server endpoint");

subscribe

stompclient.subscribe('/topic/chat', rendermessage);

connection

stompclient.connect("guest", "guest", connectcallback, errorcallback);

where send

stompclient.send("/app/addmessage", {}, jsonstr);

and in spring config

<websocket:message-broker application-destination-prefix="/app"> <websocket:stomp-endpoint path="/ws"> <websocket:sockjs /> </websocket:stomp-endpoint> <websocket:simple-broker prefix="/topic" /> <websocket:client-inbound-channel> <websocket:interceptors> <bean class="com.websocket.interceptor.connectioninterceptor" /> </websocket:interceptors> </websocket:client-inbound-channel> </websocket:message-broker>

method trying send single user

@messagemapping("/addmessage") public void addchatmessage(chatmessage chatmessage, simpmessageheaderaccessor headeraccessor,principal principal) throws exception { chatmessagelist.add(chatmessage); //trying output user returns null system.out.println(headeraccessor.getuser()); //returns null system.out.println(principal.getname()); //not sending current user template.convertandsendtouser("user", "/topic/chat", chatmessagelist); }

and in browser tried open console , can see header undefined

connected server undefined >>> subscribe id:sub-0 destination:/topic/chat

stack trace

oct 13, 2014 9:53:36 org.springframework.messaging.simp.annotation.support.simpannotationmethodmessagehandler processhandlermethodexception severe: unhandled exception org.springframework.messaging.simp.annotation.support.missingsessionuserexception: no "user" header in message @ org.springframework.messaging.simp.annotation.support.principalmethodargumentresolver.resolveargument(principalmethodargumentresolver.java:43) @ org.springframework.messaging.handler.invocation.handlermethodargumentresolvercomposite.resolveargument(handlermethodargumentresolvercomposite.java:81) @ org.springframework.messaging.handler.invocation.invocablehandlermethod.getmethodargumentvalues(invocablehandlermethod.java:128) @ org.springframework.messaging.handler.invocation.invocablehandlermethod.invoke(invocablehandlermethod.java:97) @ org.springframework.messaging.handler.invocation.abstractmethodmessagehandler.handlematch(abstractmethodmessagehandler.java:451) @ org.springframework.messaging.simp.annotation.support.simpannotationmethodmessagehandler.handlematch(simpannotationmethodmessagehandler.java:363) @ org.springframework.messaging.simp.annotation.support.simpannotationmethodmessagehandler.handlematch(simpannotationmethodmessagehandler.java:80) @ org.springframework.messaging.handler.invocation.abstractmethodmessagehandler.handlemessageinternal(abstractmethodmessagehandler.java:409) @ org.springframework.messaging.handler.invocation.abstractmethodmessagehandler.handlemessage(abstractmethodmessagehandler.java:345) @ org.springframework.messaging.support.executorsubscribablechannel$1.run(executorsubscribablechannel.java:70) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:744)

how can send single user? how can headers in simpmessageheaderaccessor? , how headers work?

when subscribe need utilize "/user/" prefix create recognized spring userdestinationmessagehandler. code :

stompclient.subscribe('user/topic/chat', rendermessage);

see spring websocket user destinations.

java spring header stomp spring-websocket

Comments

Popular posts from this blog

formatting - SAS SQL Datepart function returning odd values -

c++ - Apple Mach-O Linker Error(Duplicate Symbols For Architecture armv7) -

php - Yii 2: Unable to find a class into the extension 'yii2-admin' -