回答
在socket.io 2012 0.7.6
io.sockets.on('connection', function(client) {
console.log(io.transports[client.id].name);
});
我相信你能找到它,如果你在一個客戶對象的內部挖掘,雖然不知道爲什麼你需要這個,我必須建議對這類檢查的原因有二:
首先,由於它不在API中,開發人員絕對沒有責任保持向後兼容性,因此任何給定版本都可能以不同方式實現/存儲該信息,這隻會影響到您自己的開發並導致問題。
其次,更重要的是,我建議你重新考慮一下你的設計,通過socket.io與服務器的通信建立爲透明正在使用的方法。兩邊應該沒有區別。這就是圖書館的目的,設計一個其他行爲的應用程序完全正交於該想法。
這個問題是我想知道傳輸類型的原因http://stackoverflow.com/questions/6280569/socket-io-xhr-polling-delay-on-disconnection – wilsonpage 2011-06-08 15:19:52
@davin在深入挖掘其內部實際上並不可行。 – Raynos 2011-06-08 17:10:12
@Raynos,我想我記得在客戶端對象(或子對象)中的某個地方看到了一個'url'屬性,難道你不能使用庫本身使用的相同約定將它們從那裏排除嗎? – davin 2011-06-08 17:16:30
我相信這會解決您的問題。我的技巧是在客戶端連接後將傳輸類型保存在HTTP請求對象上。然後,您可以稍後在回調中提取它。首先,我們調整了Listener類:
var io = require('socket.io'),
io.Listener.prototype._onConnectionOld = io.Listener.prototype._onConnection;
io.Listener.prototype._onConnection = function(transport, req, res, up, head){
req.socketIOTransport = transport; // Take note of the transport type
this._onConnectionOld.call(this, transport, req, res, up, head);
};
,然後在下面在你的應用程序的身體:
var socket = io.listen(app),
socket.on('connection', function(client){
console.log(client.request.socketIOTransport); // Lets check that transport
// ...
});
希望這有助於!
月,這個工程:socket.transport
由於Socket.IO 1.0:
客戶:
socket.on('connect', function() {
console.log(socket.io.engine.transport.name);
}
服務器 :
io.sockets.on('connection', function(socket) {
console.log(socket.conn.transport.name);
}
只是爲了確認:兩者仍然與1.3.6 – 2015-08-25 09:27:31
參考的緣故和谷歌失蹄: - 萬一有人仍在使用V0.9(或可能更早) 您可以訪問客戶端的這個信息是這樣的:
var socket = io.connect();
console.log(socket.socket.transport.name); //log the name of the transport being used.
在Google羣組上找到答案https://groups.google.com/forum/#!topic/socket_io/yx_9wJiiAg0
io.connect.managers['connect url/port'].engine.transport
- 1. Java套接字服務器客戶端到客戶端文件傳輸
- 2. 使用套接字io java客戶端的套接字io客戶端
- 3. 通過套接字傳輸文件客戶端服務器java
- 4. PHP套接字服務器/客戶端
- 5. 客戶端服務器udp套接字
- 6. 套接字java客戶端服務器
- 7. 客戶端 - 服務器套接字
- 8. 服務器/客戶端套接字
- 9. 客戶端服務器套接字C#
- 10. Python服務器客戶端套接字
- 11. Java套接字客戶端/服務器
- 12. 客戶端服務器文件傳輸
- 13. 替代套接字IO客戶端
- 14. 如何創建多個Nodejs套接字io服務器客戶端?
- 15. 服務器的客戶端套接字編程輸出困難
- 16. Javascript客戶端如何連接到PHp套接字服務器?
- 17. C套接字服務器,Java套接字客戶端:阻塞!
- 18. Python套接字客戶端到Java套接字服務器
- 19. 使用多個端口的套接字客戶端/服務器
- 20. C#套接字TCP客戶端/服務
- 21. 客戶端 - 服務器(從服務器到客戶端的文件傳輸)
- 22. 傳遞在客戶端服務器之間的套接字編程客戶端服務器C
- 23. 如何獲得服務器端更新客戶端的軌道?
- 24. 服務器端客戶端文件傳輸空指針異常
- 25. 使用java套接字從服務器到客戶端的文件傳輸。錯誤在服務器端和文件傳輸到客戶端是空的
- 26. 客戶端 - 服務器Unix套接字和端口轉發
- 27. Java套接字。服務器端與客戶端通訊
- 28. Java客戶端/服務器套接字端口分配
- 29. RMI - 客戶端如何獲得服務器控制檯輸出?
- 30. 如何爲多個客戶端製作套接字服務器
有沒有簡單的方法來獲取此信息。來源不便於訪問。 – Raynos 2011-06-08 15:09:45