我试图将Websocket服务器集成到我在JBoss AS 7.2.0.Final" Janus"上使用Restcomm制作的Sip-Servlet应用程序中。我按照this链接中的指南步骤进行操作。
我尝试使用已经用于连接不同WS服务器的节点服务器连接它并且它可以工作。这里是节点的代码:
var networkNode = new ws('ws://192.168.1.220:5082/websocket/helloName');
networkNode.on('open', function open() {
console.log('connected');
});
请注意,指南说要使用8080端口但是: 1.如果我使用端口8080 node.js给我一条消息,如"连接错误:错误:意外服务器响应(404)" 2.如果我使用端口5082,则表示"已连接"但是我无法在Jboss终端看到任何日志消息。
这里是我的Sip-Servlet应用程序的Java代码部分:
package org.mobicents.servlet.sip.example;
//other imports...
import javax.websocket.CloseReason;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/websocket/helloName")
//here I have some attributes.
public class SimpleSipServlet extends SipServlet implements SipErrorListener,
Servlet {
...
@OnOpen
public void helloOnOpen(Session session) {
logger.info("WebSocket opened: " + session.getId();
}
//And so on...
我的逻辑/代码有问题吗? 我想我指的是错误的听众,对吧? 我怎么知道我的WebSocket服务器的正确路径? 谢谢你的建议。
答案 0 :(得分:0)
Restcomm SIP Servlets在端口5082上为WSS使用单独的WebSockets连接器,在WSS上使用5083。此特定WebSocket连接器仅支持SIP Over Websockets,并与底层SIP Stack紧密集成。
所以这取决于你的应用程序的意图。如果您打算使用5082处理SIP Over WebSockets流量是正确的事情,否则如果仅使用8080来处理常规WebSockets流量则需要使用。
您可能还想在https://mobicents.ci.cloudbees.com/job/RestcommSipServlets-4.X-Release/的Wildfly 10早期版本上尝试使用Restcomm SIP Servlet。它传递TCK,并且可以为HTTP端提供更新的WebSockets实现。