2016-09-29 5 views
0

ノードを使用して簡単なアプリケーションを作成しようとしています。ライブデータをソケットと共有できる場所を表現しています。私が何を試しても、サーバーまたはクライアントにメッセージを送信することはできません。ソケットが通信していない

サーバー:

var express = require('express'); 
var app = express(); 
var path = require('path'); 
var http = require('http'); 
var server = http.createServer(app); 
var io = require('socket.io')(server); 

//set location for views 
app.set('views', __dirname + '/views'); 
//set location for static files 
app.use(express.static(path.join(__dirname, 'public'))); 
app.use('/scripts', express.static(__dirname + '/node_modules/')); 

//create route 
app.get('/', function(req, res) { 
    res.render('home.jade'); 
}); 

//Connection listener for io object 
io.on('connection', function(socket){ 
    console.log('A user has connected'); 
    socket.on('test', function(data){ 
     console.log(data); 
    }); 
}) 

server.listen(3000, "localhost"); 

はクライアント:

var socket = io.connect('http://:localhost:3000'); 

$(document).on('click', '#submit-message', function() { 
    socket.send('test', {contents: "hello"}); //static for now 
}); 
+0

サーバーまたはブラウザのデバッグコンソールにエラーが表示されますか。あなたが持っている構造は一般的にOKですので、何らかのエラーを引き起こしている何かが間違っていなければなりません。そのエラーが何かを知る必要があります。うまくいけば、ログメッセージとしてコンソールに表示したり、ブラウザからネットワークタブを調べて、Webページからの接続で何が起こっているのかを調べる必要があります。 – jfriend00

+0

'http://:localhost:3000'は無効なURLです。 – robertklep

+0

私はブラウザにエラーがありません。私はURLが奇妙に見えますが、http:// localhost:3000を入力すると動作しません。 –

答えて

1

今それが動作するはずです。..

クライアント:

var socket = io(); 

$(document).on('click', '#submit-message', function() { 
    socket.emit('test', {contents: "hello"}); //static for now 
}); 

問題はsocket.sendが常に放出していることです'メッセージ'イベント、それはのように動作しますsocket.emit( 'message'、{contents: "hello"})。クライアントのsocket.sendにsocket.on( 'message'、function(data){})を設定する必要があります。サーバー内にあります。

+0

私は放射を試みましたが、どちらも動作しませんでした –

+1

そしてvar socket = io(); – mk12ok

+0

あなたの男+1。私はsocket = io()からconnect(ipアドレス)を削除しました。それが働いた –

関連する問題