我一直在阅读websockets中的ping/pong消息以保持连接活着,但我不确定它们是什么.它是一种独特的框架类型吗?(我没有在与乒乓相关的chrome中的javascript WebSocket对象上看到任何方法).或者它只是一种设计模式(例如,我将"ping"或任何其他字符串发送到服务器并让它响应).乒乓球是否与延续帧有关?
我问的原因是我正在使用一个在Mongrel2后面运行的python框架,所以我想知道是否有办法向Mongrel2发送一条特定的ping/pong消息,告诉它在没有我的python应用需要的情况下保持连接存活担心它.我想,类似于有一个单独的HTTP方法.而且我认为专用的ping/pong消息帧可能比字符串"ping"更简单(服务器和网络上的负载更少),尽管这可能无关紧要.
编辑:我只看了RFC 6455,它看起来像Ping和Pong肯定是控制帧类型与自己的操作码.那么如何从Chrome中的javascript发送Ping帧?
我们在Linode盒子上的端口8080上设置了websocket服务器.Chrome和Opera工作得很好.然而,Firefox抱怨操作不安全.
"操作不安全:代码18"
如果我尝试在页面加载之前在Web控制台中创建一个新的WebSocket对象,一切都很好.但是,在页面加载后,某些东西变得棘手,我就再也无法创建对象了.请参阅附带的屏幕截图
我不知道什么操作是不安全的,甚至不知道怎么去诊断这个.
根据这些 文章,Websocket的成功率仅为63%(如果你有一个支持websocket的浏览器).
这篇InfoQ文章(http://www.infoq.com/articles/Web-Sockets-Proxy-Servers)表示,您有更好的机会使用安全Websockets(wss://)进行连接.
有没有人对企业就绪应用程序使用Websockets,企业代理和防火墙背后有任何反馈?
如果我的问题不在话题,我很抱歉.
此致,尼科
尝试使用sockjs在套接字上使用Spring 4 WebSocket和STOMP.我遇到了一个问题.
我的配置:
websocket.xml - spring上下文的一部分
<websocket:message-broker application-destination-prefix="/app">
<websocket:stomp-endpoint path="/ws">
<websocket:sockjs/>
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic"/>
</websocket:message-broker>
Run Code Online (Sandbox Code Playgroud)
控制器代码:
@MessageMapping("/ws")
@SendTo("/topic/ws")
public AjaxResponse hello() throws Exception {
AjaxResponse ajaxResponse = new AjaxResponse();
ajaxResponse.setSuccess(true);
ajaxResponse.addSuccessMessage("WEB SOCKET!!! HELL YEAH!");
return ajaxResponse;
}
Run Code Online (Sandbox Code Playgroud)
客户端:
var socket = new SockJS("<c:url value='/ws'/>");
var stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
alert('Connected: ' + frame);
stompClient.send("/app/ws", {}, {});
stompClient.subscribe('/topic/ws', function(response){
alert(response.success);
});
});
Run Code Online (Sandbox Code Playgroud)
输出:
Opening Web Socket... stomp.js:130
GET http://localhost:8080/ws/info 404 (Not Found) sockjs-0.3.js:807
Whoops! Lost connection to undefined …Run Code Online (Sandbox Code Playgroud) websocket ×3
firefox ×1
java ×1
javascript ×1
mongrel2 ×1
proxy ×1
sockjs ×1
spring-mvc ×1
stomp ×1