Verwenden Sie socket.io, um Websocket zu implementieren. Der Backend-Link lautet jetzt wie folgt: ws://103.31.201.1/some. Verwenden Sie den Nginx-Proxy, um Nicht-80-Ports in der URL zu entfernen (Sie dürfen keine Ports haben). wissen), aber in der eigentlichen Anfrage entfernt socket.io immer /some und die Anfragen werden an ws://103.31.201.1 gesendet. Wie geht man mit diesem Problem um?
var socket = io.connect('ws://103.31.201.1/some')
socket.on('even_name',function(data){
console.log(data);
})
Die gesendete Anforderungs-URL lautet:
http://103.31.201.1/socket.io/?EIO=3&transport=polling&t=1492593587367-0
Es gibt keinen Verzeichnispfad wie /some in der URL, was dazu führt, dass der Socket keine Verbindung herstellen kann
Ergänzung: Perfekt gelöst:
var socket = io.connect('ws://103.31.201.1', {path: '/some/socket.io'})
socket.on('even_name',function(data){
console.log(data);
})
Standardmäßig zeigt der Pfad auf /socket.io. Sie können den Pfad voreinstellen, um ein Verzeichnis hinzuzufügen
你好,我遇到了你之前发的这个问题,根据你的解决方案配置了path之后,在nginx的access日志中发现请求返回状态码是400,你知道是怎么回事吗/q/10... socket.io connect中url带目录的问题