2017-03-16 36 views
1

我在一個名爲app.js的文件中創建了一個使用NodeJS的web套接字實例,並在端口8080上聲明瞭一個偵聽器。但是,當我運行命令啓動連接時,連接未建立並且未記錄控制檯。我試圖打開一個Web套接字連接並創建一個談話服務器。當我運行我的app.js時,createServer()函數不會觸發,並且「新連接」未被記錄。是否有更多的參數需要打開連接?我對websockets很陌生;任何幫助表示讚賞。爲什麼我的websocket服務器沒有正確提供我的HTML頁面?

這裏是我的app.js代碼:

var ws = require("nodejs-websocket") 
console.log("testing") 

var server = ws.createServer(function (conn) { 
    console.log("New connection") 
    conn.on("text", function (str) { 
     console.log("Received "+str) 
     conn.sendText(str.toUpperCase()+"!!!") 
    }) 
    conn.on("close", function (code, reason) { 
     console.log("Connection closed") 
    }) 
}).listen(8080);  

這裏是我嘗試連接到客戶端站點的WebSocket。我想將任何輸入的websocket發送到文本框中,然後在輸入標籤中記錄返回的字符串。

<html> 
<body> 

<p> 
Result: <output type=text id="result0" value="" readonly></output> 
</p> 

<input type="text" onchange="connection.send(this.value); " /> 

<script> 
    var connection = new WebSocket("ws://localhost:8080/echo"); 
    connection.onmessage = function (event){ 
    document.getElementById("result0").value = event.data; 
    }; 
</script> 
</body> 
</html> 

回答

1

它工作正常...只是執行你的服務器端A

npm install -g nodejs-websocket # if not installed 
node my_websocket.js 

那麼你的客戶端保存爲文件browser_client.html 然後同一目錄的問題這裏面在啓動的httpd服務器一個新的終端B

npm install -g http-server # install an httpd server to render html file 
http-server -c-1 -p 8888 # this launches the httpd 

然後打開在鏈接

一個瀏覽器和點
http://localhost:8888/browser_client.html 

,你會在終端看到瀏覽器A輸出

New connection 

然後在文本框中輸入一些文字

apples and oranges 

這會再次出現在終端A以及顯示在瀏覽器

相關問題