Node.jsでSocket.IOを使って、C#のクライアントアプリと通信しようとしていますが、接続のところでうまくいかず詰まっています。
環境は以下です。
●サーバー
VMWare Workstationで以下の設定をしています。
・OS:Ubuntu 64ビット
・バージョン:Workstation 15.x 仮想マシン
・IPアドレス:192.168.11.8(ブリッジ接続)
・ライブラリ:Socket.IO
●クライアント
・OS:Windows 10 Home
・実行環境;Visual Studio 2017
・ライブラリ:SocketIoClientDotNet
以下のコードを実行しています。
●クライアント
C#
1using Quobject.SocketIoClientDotNet.Client; 2using System; 3using System.Windows.Forms; 4 5namespace SocketIOTest 6{ 7 public partial class Form1 : Form 8 { 9 private const string SERVER_URL = "http://192.168.11.8:12345"; 10 11 public Form1() 12 { 13 InitializeComponent(); 14 } 15 16 private void btnConnect_Click(object sender, EventArgs e) 17 { 18 var socket = IO.Socket(SERVER_URL); 19 20 socket.On(Socket.EVENT_CONNECT, () => 21 { 22 //接続完了のイベントを受信 23 MessageBox.Show("接続完了"); 24 }); 25 } 26 } 27} 28
●サーバー(app.js)
JavaScript
1var express = require('express'); 2var app = express() 3var http = require('http').Server(app); 4const io = require('socket.io')(http); 5 6io.on('connection', function(socket){ 7 console.log('connected'); 8}); 9 10http.listen(12345, function(){ 11 console.log('server listening.'); 12});
●動作結果
サーバーのコードを「node app.js」コマンドで起動すると、「server listening.」が表示されます。
続いてクライアントでボタン押下イベント(btnConnect_Click)を呼んでも何も変化がありません。
本当は、サーバー側で「connected」、クライアント側で「接続完了」のダイアログが出てきて欲しいですが、
クライアント側からの接続要求がうまくいっていない、また、接続できたとしてもサーバーからクライアントに
接続完了を通知する処理が抜けているのか分からず詰まっています。
Socket.IOを使用してクライアントからの接続要求、サーバーから接続完了を通知する処理の記載方法が
分かる方がおられましたら、宜しくお願い致します。
あなたの回答
tips
プレビュー