2012-12-12 30 views
0

我有一個java程序,它從COM端口收集實時傳感器數據,我想不使用node.js發送到JavaScript。實時通信java到javascript

傳感器數據應該至少每秒2次。

我很難使用數據庫進行通信,但這可能會減慢解決方案。 如果需要,瀏覽器支持可能僅限於谷歌瀏覽器。 (osx,win,linux)

什麼是你理想的解決方案?

編輯: - java軟件應該運行在與基於web的javascript客戶端相同的平臺上。

本質上,要發送的數據是GPS,..數據顯示在地圖上。

+0

您可以使用套接字嗎?一個Socket每秒可以處理大約200,000條消息。 –

+0

問題在哪裏? – Bergi

+1

只需編寫一個Web應用程序。利潤。 –

回答

1

有很多方法可以做到這一點。

-A java要閃存到JavaScript橋,通過套接字進行通信。這是大多數瀏覽器支持Flash以來最兼容的方式。有幾個開源的AS3橋接器,但是你需要插座。

-a java小應用程序和applet調用JavaScript代碼。如果您有權讀取com端口是最簡單的方法,否則您可能需要與applet認證拼搏。 Java運行時必須安裝在您的機器上。

-a websocket如果您使用Firefox 8.0+或最近版本的谷歌瀏覽器與您的java應用程序wia websockets進行通信。是最現代的方式來做到這一點。它不適用於IE,但你不需要任何其他應用程序作爲JavaScript和Java之間的橋樑,你可能需要努力尋找一個Java套接字服務器的例子,創建自己的實現或使用支持WS的Web容器/應用程序服務器://或WSS://

+0

什麼是更好的資源明智?因爲大量的傳感器數據被傳輸:使用applet或socket comm? – Thomas

+0

這將取決於您的需求。如果它的某種監視器,我會創建一個閃存/ Flex實時監視器,並通過套接字連接到您的Java應用程序,從COM讀取。如果你想用尖端的代碼技術做到這一點,我會使用websocket並將它連接到你的com reader java應用程序。 最簡單的就是創建一個java applet,如果你可以從那裏讀取com,那麼在需要的時候調用javascript(你不需要這個)。 不用擔心套接字效率。 – PbxMan

2

LiveConnect是你在找什麼。它允許你定義從JS到Java的通信方法,反之亦然。它是JDK中的一項內置技術。

+0

這是否意味着我需要將我的Java程序轉換爲一個小程序? – Thomas

+0

基本上你會使用一個applet類來處理JS的調用,並將你得到的內容傳播給程序的其餘部分。我以這種方式實現了一個錄音機,使用JS來啓用和禁用它(我不想使用Java applet GUI)以及所有其他基本操作。所有的錄製功能都在經典的Java類中,而小程序包含了前端管理和交互的所有功能。 – drekyn