建立之前失去弹簧websocket sockjs连接

时间:2014-12-29 04:12:06

标签: spring websocket sockjs

我在使用带有sockjs的弹簧websocket时有一个问题。 当我定义" localhost:8080 / websocket" 时,它的工作完美...... 但是当我用ip更改localhost时。例如: 192.168.3.56 websocket不会连接到后端..并且有消息" Connection Lost在建立之前" 任何人都可以帮助我,我真的被卡住了..

我的弹簧配置websocket代码:

@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
    config.enableSimpleBroker("/device","/topic","/queue");
    config.setApplicationDestinationPrefixes("/app");

}

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/websocket").withSockJS()

            .setStreamBytesLimit(512 * 1024)
            .setHttpMessageCacheSize(1000)
            .setDisconnectDelay(30 * 1000);
    ;
}

和我的客户端代码基于coffeescript:

 service = {}


listener = $q.defer()
  socket =
    client: null
    stomp: null

  service.RECONNECT_TIMEOUT = 30000
  service.SOCKET_URL = "#{HOST}websocket"
  service.SUBSCRIBER_UPDATE = "/device/update"
  service.SUBSCRIBER_UPDATE_ALL = "/device/update_all"

  reconnect = ->
    $timeout (->
      initialize()
      return
    ), @RECONNECT_TIMEOUT
    return

  startListener = ->
    socket.stomp.subscribe "#{service.SUBSCRIBER_UPDATE}/#{id}", (data) ->
      body = JSON.parse(data.body)
      if body.message is 'RELOAD'
        $state.transitionTo $state.current, $stateParams,
          reload: true
          inherit: false
          notify: true
      return
    socket.stomp.subscribe service.SUBSCRIBER_UPDATE_ALL, (data) ->
      console.log data
      body = JSON.parse(data.body)
      if body.message is 'RELOAD'
        $state.transitionTo $state.current, $stateParams,
          reload: true
          inherit: false
          notify: true
      return
    listener.resolve()

  errorListener =(error)->
    listener.reject()

  service.initialize = ->
    socket.client = new SockJS(service.SOCKET_URL)
    socket.stomp = Stomp.over(socket.client)
    socket.stomp.connect {}, startListener,errorListener
    socket.stomp.onclose = reconnect
    listener.promise
  service

0 个答案:

没有答案
相关问题