1
A
回答
1
與碼頭9起,您可以使用WebSocketCreator概念來實現這種行爲。
package org.eclipse.jetty.websocket.server.examples;
import java.io.IOException;
import org.eclipse.jetty.websocket.api.UpgradeRequest;
import org.eclipse.jetty.websocket.api.UpgradeResponse;
import org.eclipse.jetty.websocket.server.examples.echo.BigEchoSocket;
import org.eclipse.jetty.websocket.servlet.WebSocketCreator;
import org.eclipse.jetty.websocket.servlet.WebSocketServlet;
import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;
@SuppressWarnings("serial")
public class MyCustomCreationServlet extends WebSocketServlet
{
public static class MyCustomCreator implements WebSocketCreator
{
@Override
public Object createWebSocket(UpgradeRequest req, UpgradeResponse resp)
{
String query = req.getQueryString();
// Start looking at the UpgradeRequest to determine what you want to do
if ((query == null) || (query.length() <= 0))
{
try
{
// Let UPGRADE request for websocket fail with
// status code 403 (FORBIDDEN) [per RFC-6455]
resp.sendForbidden("Unspecified query");
}
catch (IOException e)
{
// An input or output exception occurs
e.printStackTrace();
}
// No UPGRADE
return null;
}
// Create the websocket we want to
if (query.contains("bigecho"))
{
return new BigEchoSocket();
}
else if (query.contains("echo"))
{
return new MyEchoSocket();
}
// Let UPGRADE fail with 503 (UNAVAILABLE)
return null;
}
}
@Override
public void configure(WebSocketServletFactory factory)
{
factory.setCreator(new MyCustomCreator());
}
}
相關問題
- 1. 碼頭9 - HttpCompliance.LEGACY
- 2. 在碼頭9
- 3. 從碼頭7升級到碼頭9
- 4. 碼頭9未能在Android
- 5. 碼頭9 - HttpServletResponse.SC_CONTINUE不行
- 6. 碼頭9:在啓動時
- 7. 碼頭9,字符編碼UTF-8
- 8. Change Jetty WebSocketListener線程名稱
- 9. vtortola WebSocketListener不能寫在websocket
- 10. 運行Eclipse碼頭9搖籃
- 11. 碼頭9無視我的XML配置
- 12. 碼頭9處理程序的例子?
- 13. 碼頭車odoo 9安裝pika錯誤
- 14. 碼頭9「 - 模塊」而不是「選項」
- 15. 錯誤而轉發到在碼頭9
- 16. 碼頭9和IntelliJ不會啓動
- 17. 碼頭9掛起,QueuedThreadPool增長較大
- 18. 碼頭9符號鏈接爆炸戰
- 19. 碼頭9 + JDK 8 +彈簧4註解
- 20. 輕量級IPC到Jetty中的WebSocketListener
- 21. 碼頭9 - 如何使用Jetty 9設置「請求內容」和「請求標題」?
- 22. Alamofire 1.3認證頭IOS 9
- 23. 將外部碼頭9整合到日食中?
- 24. 嵌入式碼頭9 - jetty-all.jar在哪裏?
- 25. 升級到碼頭後無法運行項目到9
- 26. 使用碼頭運行球衣2服務器9
- 27. 永久HTTP重定向到https在碼頭9
- 28. 碼頭上無描述符的澤西島9
- 29. 如何聚集在碼頭連接統計9
- 30. 碼頭9,websockets和服務器端關閉websocket連接
我不知道factory.setCreator。正是我在找什麼。謝謝。 – fso 2013-02-28 06:39:43