Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 我怎样才能让春天+;cometd支持WebCoket?_Spring_Websocket_Cometd - Fatal编程技术网

Spring 我怎样才能让春天+;cometd支持WebCoket?

Spring 我怎样才能让春天+;cometd支持WebCoket?,spring,websocket,cometd,Spring,Websocket,Cometd,我使用chrome,它总是返回: WebSocket connection to 'ws://192.168.1.228:9090/achat/cometd' failed: Unexpected response code: 400 发生此错误后,它将使用长轮询传输,并成功连接到服务器 如何让WebSocket工作?它是由使用SpringFramework 3.1引起的吗?谢谢 Web.xml <!-- Filter to support cross domain requests -

我使用chrome,它总是返回:

WebSocket connection to 'ws://192.168.1.228:9090/achat/cometd' failed: Unexpected response code: 400
发生此错误后,它将使用长轮询传输,并成功连接到服务器

如何让WebSocket工作?它是由使用SpringFramework 3.1引起的吗?谢谢

Web.xml

<!-- Filter to support cross domain requests -->
<filter>
    <filter-name>cross-origin</filter-name>
    <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
    <!--async-supported>true</async-supported-->
</filter>
<filter-mapping>
    <filter-name>cross-origin</filter-name>
    <url-pattern>/cometd/*</url-pattern>
</filter-mapping>
<!-- Cometd Servlet -->
<servlet>
    <servlet-name>cometd</servlet-name>
    <servlet-class>org.cometd.annotation.AnnotationCometdServlet</servlet-class>
    <!--async-supported>true</async-supported-->
    <init-param>
        <param-name>timeout</param-name>
        <param-value>20000</param-value>
    </init-param>
    <init-param>
        <param-name>interval</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>maxInterval</param-name>
        <param-value>10000</param-value>
    </init-param>
    <init-param>
        <param-name>maxLazyTimeout</param-name>
        <param-value>5000</param-value>
    </init-param>
    <init-param>
        <param-name>long-polling.multiSessionInterval</param-name>
        <param-value>2000</param-value>
    </init-param>
    <init-param>
        <param-name>logLevel</param-name>
        <param-value>100</param-value>
    </init-param>
    <init-param>
        <param-name>transports</param-name>
        <param-value>org.cometd.websocket.server.WebSocketTransport</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>cometd</servlet-name>
    <url-pattern>/cometd/*</url-pattern>
</servlet-mapping>

交叉起源
org.eclipse.jetty.servlets.CrossOriginFilter
交叉起源
/降临/*
降临
org.cometd.annotation.annotationCometServlet
超时
20000
间隔
0
最大间隔
10000
最大懒散超时
5000
长轮询.多会话间隔
2000
对数电平
100
运输
org.cometd.websocket.server.WebSocketTransport
1.
降临
/降临/*
Servlet

@Named
@Singleton
@Service
public class ChatService {
    @Inject
    private BayeuxServer bayeux;
    @Session
    private ServerSession serverSession;

    @Listener("/chat")
    public void processHello(ServerSession remote, ServerMessage.Mutable message)
    {
        Map<String, Object> input = message.getDataAsMap();
        String room = input.get("room").toString();
        String content = input.get("content").toString();

        Map<String, Object> output = input;        
        bayeux.getChannel("/room/" + room).publish(remote, output, null);
    }
}
@Named
@独生子女
@服务
公共类聊天室服务{
@注入
专用bayeux服务器bayeux;
@会议
专用服务器会话;
@侦听器(“/chat”)
public void processHello(ServerSession remote,ServerMessage.Mutable message)
{
映射输入=message.getDataAsMap();
stringroom=input.get(“room”).toString();
String content=input.get(“content”).toString();
地图输出=输入;
getChannel(“/room/”+room).publish(远程,输出,空);
}
}
遵循,特别是说明如何集成的部分

在这里,您可以找到一个使用Spring的XML配置来设置WebSocket的示例,以及一个如何通过注释配置Spring的示例

您的问题缺少Spring配置文件和
web.xml
文件的一部分,因此很难以更详细的方式帮助您

请记住,如果在Spring中配置CometD,那么必须从
web.xml
中删除所有CometD配置。您必须只有一个地方可以配置东西:要么
web.xml
,要么Spring的xml/注释