2016-03-15 12 views
5

Có triển khai ipc cho electron, nó được đặt tên là ipcrenderer và ipcmain, chúng được dành cho truyền thông chính, và nó không hoạt động cho giao tiếp giữa hai cửa sổ (thậm chí truyền thể hiện của emitter).Ứng dụng điện tử ipc truyền thông giữa hai cửa sổ

Tôi nghĩ, với ví dụ thực tế sẽ rõ ràng hơn (https://github.com/linuxenko/usprited). Tôi muốn làm cho thanh công cụ và cửa sổ chính là hai cửa sổ khác nhau. Vấn đề duy nhất là một giao tiếp giữa hai cửa sổ này, ipc không hoạt động, đã không cố gắng postmessage được nêu ra. Những gì bạn có thể đề nghị cho trường hợp này? Làm thế nào hoặc eventemitter, thực hiện, sử dụng để giao tiếp giữa các cửa sổ của ứng dụng điện tử?

Trả lời

1

Tôi nghĩ rằng lựa chọn phương pháp IPC của bạn sẽ tùy thuộc vào loại dữ liệu bạn cần chia sẻ giữa các cửa sổ và theo cách bạn quản lý cửa sổ. Ví dụ, nếu bạn quản lý các cửa sổ của bạn từ quá trình Main, bạn có thể sử dụng quá trình Main như một trung tâm trung tâm để truyền xung quanh các thông điệp bằng cách sử dụng các module 'ipc' của Electron. Nếu cửa sổ của bạn biết về nhau, có thể tốt hơn là trao đổi thông điệp trực tiếp giữa họ, mà không phải trải qua quá trình Chính.

Nếu bạn mở một cửa sổ bằng cách sử dụng điện thoại window.open Ví dụ, sau đó bạn có thể sử dụng postMessage trên proxy cửa sổ (trong cửa sổ con, sử dụng window.opener.postMessage) để gửi tin nhắn.

Tất nhiên, bạn cũng có thể mở một ổ cắm giữa hai cửa sổ hoặc sử dụng bất kỳ hình thức IPC nào khác, đặc biệt nếu bạn cần truyền tải nhiều dữ liệu. Đối với các tin nhắn và sự kiện đơn giản, postMessage sẽ là tốt.

+0

cảm ơn bạn @inukshuk, điều gì đó giống như giao tiếp trung tâm thông qua quá trình chính trông thực tế hơn, tôi sẽ thử. Xin vui lòng, bạn có thể giải thích những gì bạn có nghĩa là "ổ cắm giữa hai cửa sổ"? Có thể không có máy chủ không? webrtc? Nếu vậy, hãy hướng dẫn tôi cách thực hiện nó, nó trông giống như một giải pháp rất hứa hẹn. –

+0

Tôi có nghĩa là một cái gì đó giống như mở một ổ cắm unix (nếu bạn không hỗ trợ cửa sổ) hoặc ổ cắm mạng ... một trong các quy trình của bạn sẽ phải chơi máy chủ. Tôi đã không được coi là WebRTC nhưng đó có thể là một ý tưởng khá thú vị nếu bạn muốn dòng video hoặc âm thanh ... nó khá mát mẻ những gì bạn có thể làm với Electron. – inukshuk

+0

aaah, bây giờ tôi hiểu, cảm ơn bạn) –

Các vấn đề liên quan