2012-11-07 31 views
1

請記住,我對所有此javascript/node.js樣式的HTML編碼都非常新穎。在過去,我所做的所有HTML都是靜態/信息風格的頁面。獲取HTML頁面以與node-xmpp/xmpp服務器進行通信

我想創建一個HTML網頁,將從用戶(服務器地址,端口,用戶JID,密碼,聊天消息,其他用戶JID等)中獲取xmpp相關信息,並通過node.js服務器到xmpp服務器。最終,我試圖做的是採取webrtc.io code並將其擴展爲與XMPP服務器上的用戶綁定並與其交互。在試圖做到這一點時,我找到了node-xmpp模塊並將其「安裝」到(npm install)到我的項目工作目錄中的node_modules文件夾中。

然後,我創建了一個非常基本的index.html文件(文本輸入框),它接受用戶信息,然後調用index.html文件中包含的JavaScript文件中的函數。在javascript文件中,我添加了require函數/調用const xmpp = require('node-xmpp'),添加了var client = new xmpp.Client({[connection settings]});,然後啓動了一些基本節處理程序和其他xmpp函數。

當我在瀏覽器中「運行」代碼之前,甚至在我開始輸入信息之前,我看到控制檯正在報告錯誤。起初,他們是我編寫的xmpp函數的錯誤,所以我評論了一切,只有new xmpp.Client({})行來看看它是否會連接。但是,我會在cont xmpp = require('node-xmpp')上遇到錯誤。這錯誤

Uncaught ReferenceError: require is not defined (anonymous function)

從我有限的這一切HTML/JavaScript的/服務器上的東西的理解,我認爲正在發生的事情是客戶端/瀏覽器不知道/訪問要麼Node.js的或節點-xmpp庫。

這是正確的?我應該以不同的方式做事嗎?那裏是否有很好的教程/文檔涵蓋了這些內容?

回答

0

如果我明白你在說什麼,你正試圖在瀏覽器中執行節點代碼。節點源應該在服務器上執行,而不是在瀏覽器中執行。您將擁有兩組JavaScript文件:您在瀏覽器中執行的那些瀏覽器以及使用節點實例在服務器上執行的那些文件。如果我誤解了,請告訴我們更多關於系統結構的信息。

+0

謝謝。我決定遵循你的建議,因此我放棄了讓瀏覽器/客戶端嘗試和管理xmpp的東西,而只是讓服務器管理所有的連接。 – AeroBuffalo

+0

使用瀏覽器處理XMPP連接的最佳方法是讓客戶端通過BOSH服務器控制與XMPP服務器的連接(例如chat.facebook.com),這樣可以節省更多的帶寬,而不必經常發送/從您的服務器接收每個傳入/傳出消息的數據 – xorinzor