Tôi chỉ muốn đính kèm một số biến vào ổ cắm của mình, nhưng tôi không hiểu các phương thức .get và .set. Cả hai đều có một đối số thứ ba cho một cuộc gọi lại. Điều này có thể được bỏ qua? Nó là cái gì ?! Liệu các cuộc gọi lại chính nó intherit đối số?socket.io socket.set và socket.get - đối số gọi lại là gì?
Đoán tốt nhất của tôi là ở đó khi socket.io không sử dụng bộ nhớ nhưng đang lưu nội dung này ở nơi khác và cần kiểm tra lỗi khi gọi lại.
socket.on('set nickname', function (name) {
socket.set('nickname', name, function (arguments) {
doSomethingMysterious();
});
Tôi đang sử dụng socket.io 0.9.x
Các hàm được định nghĩa trong socket.js
/**
* Stores data for the client.
*
* @api public
*/
Socket.prototype.set = function (key, value, fn) {
this.store.set(key, value, fn);
return this;
};
Cảm ơn, thực tế là họ đang không đồng bộ làm cho nó dễ dàng hơn để quấn của tôi đầu xung quanh toàn bộ điều. Trong trường hợp thông thường, điều này sẽ được sử dụng để lưu các giá trị vào một db ở đâu đó và sau đó sử dụng một phát lại khác cho khách hàng để cho họ biết rằng nó được lưu? Tôi đoán nó vẫn chưa rõ ràng đối với tôi, ngoài sự va chạm không gian tên, tại sao chúng ta không thể sử dụng cái gì đó như 'socket.property = value;' Chỉ mới bắt đầu với node.js 2 ngày trước, xin hãy tha thứ cho sự thiếu hiểu biết của tôi! –
Vâng, một lý do chính đáng tại sao bạn sẽ sử dụng 'set',' get' (như được chọn để tiết kiệm một giá trị trong một đối tượng), là lưu nó trong db. Trong thực tế 'socket.io' dường như đã có một bản dựng trong' redis store', nhưng tôi không phải là người dùng socket.io nên tôi không thể nói nó có thể được sử dụng như thế nào. Nếu bạn nhìn vào mã nguồn, khi gọi 'set', giá trị này sẽ đặt giá trị trong' store': https://github.com/LearnBoost/socket.io/blob/master/lib/socket.js#L246 – mihai
và rằng .store theo mặc định là redis? Hoặc là nó chỉ thích hợp để bạn có thể thiết lập cửa hàng của riêng bạn? – Funkodebat