使用socket.io 來實現websocket,現在後端的連結是這樣的:ws://103.31.201.1/some,透過nginx代理來去掉url中的非80埠(小程式不允許帶端口,你懂的),但是實際請求中,socket.io總是把/some去掉,請求都發到ws://103.31.201.1下面去了,請問這種問題怎麼處理?
var socket = io.connect('ws://103.31.201.1/some')
socket.on('even_name',function(data){
console.log(data);
})
發出去的請求URL變成:
http://103.31.201.1/socket.io/?EIO=3&transport=polling&t=1492593587367-0
url中並沒有/some 這樣的目錄路徑,導致socket連線不上
補充:已完美解決:
var socket = io.connect('ws://103.31.201.1', {path: '/some/socket.io'})
socket.on('even_name',function(data){
console.log(data);
})
預設情況下path是指向/socket.io,可以預設path來增加目錄
滿天的星座2017-05-16 13:37:59
你好,我遇到了你之前發的這個問題,根據你的解決方案配置了path之後,在nginx的access日誌中發現請求返回狀態碼是400,你知道是怎麼回事嗎/q/10. .. socket.io connect中url帶目錄的問題