2013-06-25 22 views
19

Có phải là ws://myserver.com/path?param=1 địa chỉ WebSocket hợp lệ không?Địa chỉ WebSocket có thể mang thông số không?

Địa chỉ http://myserver.com/path?param=1 (thông báo bây giờ là http và không ws) hoạt động tốt với wscat, nhưng tôi không thể làm việc đó trên trình duyệt.

+1

url có thể là bất kỳ điều gì. – dandavis

+0

Tại sao bạn thử truy cập địa chỉ WebSocket với lược đồ 'http:'? – apsillers

+0

@apsillers Tôi đã không, và tôi đã ngạc nhiên wscat cho phép tôi .. –

Trả lời

22

ws://myserver.com/path?param=1 là URI WebSocket hợp lệ. Tuy nhiên, cách mà ứng dụng máy chủ WebSocket của bạn có thể truy cập đường dẫn và chuỗi truy vấn sẽ khác nhau tùy thuộc vào khung máy chủ WebSocket bạn đang sử dụng.

Nếu bạn đang sử dụng thư viện Node.js einaros/ws, thì trong đối tượng kết nối websocket của bạn sẽ có đường dẫn đầy đủ với chuỗi truy vấn tại upgradeReq.url.

Ví dụ này:

wss.on('connection', function(ws) { 
    console.log("url: ", ws.upgradeReq.url); 
}; 

sẽ in url: /path?param=1 khi bạn kết nối với ws://myserver.com/path?param=1.

+0

cách nhận tham số được truyền trong trang .jsp? –

+4

chỉ là một lưu ý: sau đó bạn có thể [phân tích cú pháp url] (http://www.codingdefined.com/2014/11/how-to-parse-urls-in-nodejs.html) bằng cách sử dụng ['url.parse() '] (https://nodejs.org/docs/latest/api/url.html#url_url_parsing) –

+3

cập nhật: nâng cấp thuộc tínhReq đã bị xóa. xem https://github.com/websockets/ws/pull/1099 – Kuofp

Các vấn đề liên quan