[英]can't connect to socket io in production
我無法在生產中連接到socket.io。 它在我的開發服務器上工作正常,但是在生產控制台中沒有收到“ websocket用戶已連接”消息,並且我的熱圖沒有填充測試數據。 我在瀏覽器jscript控制台中得到了net :: ERR_CONNECTION_TIMED_OUT。
從服務器:
io.origins('http://example.com/path:8080')
app.get('/somepath', function (req, res, next) {
// code here
io.emit('update', data)
console.log('update has been emitted') // this prints and I see the data object in the console
res.end("OK")
})
io.on('connection', function (socket) {
console.log('websocket user connected')
});
從角度控制器:
$http.get('http://example.com/somepath?'+str) // hits somepath with test data in query string 'str'
從/路徑中的腳本:
var socket = io('http://example.com:8080');
而且我還在/ path頁面中包含了socket.io的CDN
<script src="https://cdn.socket.io/socket.io-1.3.2.js"></script>
問題是我必須在開發服務器的URL中包括端口號,但是如果在生產服務器中使用該端口,它將無法建立連接。 我不確定為什么會這樣,但是我想我的瀏覽器發出的請求中暗含了該端口,如果明確指出,則有關格式的某些信息會使它無法識別。
我所做的更改:
我從服務器上刪除了io.origins語句,因為socket.io的默認設置是允許任何起源。 這消除了一種可能的錯誤源。
我從角度控制器的$ http.get()中刪除了端口號,並將var socket = io('http://example.com:8080') to var socket = io('http://example.com')
在另一個腳本中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.