2017-11-06 7 views
1

Websocket (Raspberry Pi에서)을 통해 메시지를 보내는 제어판을 통해 컴퓨터의 볼륨을 제어 할 수있는 프로그램을 작성하려고합니다.C# socket.io 이벤트를 수신 대기하지 않음

제어 패널과 Node.JS 서버를 작성했지만 콘솔 응용 프로그램 (제어하려는 PC에로드 됨)에 연결하지 않아도 메시지를 보내지 않거나 방출하는 데 문제가 있습니다. 서버 확인 (내 서버가 사용자가 연결 한 콘솔에 로그하는 것으로 알고 있습니다).

저는 어제부터 C#을 처음 사용하기 때문에 언어에 대한 지식이 부족해서 문제를 찾을 수 없습니다. 어떤 제안?

편집 - .On 메서드가 전혀 실행되지 않습니다. 볼륨을 변경하는 대신 콘솔에 쓰려고 시도했지만 작동하지 않습니다.

콘솔 응용 프로그램 :

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 


using System.Runtime.InteropServices; 
using AudioSwitcher.AudioApi.CoreAudio; 
using Quobject.SocketIoClientDotNet.Client; 

namespace SoundControlV1 
{ 
    class Program 
    { 
     //Hide Console Code. 
     [DllImport("kernel32.dll")] 
     static extern IntPtr GetConsoleWindow(); 

     [DllImport("user32.dll")] 
     static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); 

     const int SW_HIDE = 0; 
     const int SW_SHOW = 5; 


     static void Main(string[] args) 
     { 
      //Launch Message 
      Console.WriteLine("Sound Control V1 Launching..."); 

      //Init Socket. 
      var socket = IO.Socket("http://ip:3000"); 

      CoreAudioDevice defaultPlaybackDevice = new CoreAudioController().DefaultPlaybackDevice; 

      //Sleep. 
      System.Threading.Thread.Sleep(2000); 

      //Hide Console. 
      ShowWindow(GetConsoleWindow(), SW_HIDE); 

      Console.WriteLine("Test"); 
      //Socket Actions. 
      socket.On("SOUND_UP", (data) => 
      { 
       Console.Write("Test"); 
       defaultPlaybackDevice.Volume = defaultPlaybackDevice.Volume + 10; 
      }); 

      socket.On("SOUND_DOWN", (data) => 
      { 
       defaultPlaybackDevice.Volume = defaultPlaybackDevice.Volume - 10; 
      }); 

      //Prevent app from closing. 
      Console.ReadKey(); 
     } 
    } 
} 

서버 코드 :

var server = require('http').createServer(); 

var io = require('socket.io')(server); 

io.on('connection', function(client){ 
    //General Functions. 
    console.log('A User has connected to the Socket!'); 
    client.on('disconnect', function(){ 
     console.log('A User has disconnected from the Socket!'); 
    }); 

    //Message Test 
    client.on("message", function(data){ 
     console.log(data); 
     client.send(data); 
    }); 

    //Sound Control Functions. 
    client.on("SOUND_UP", function(data){ 
     console.log("SOUND_UP"); 
     client.emit("SOUND_UP"); 
    }); 

    client.on("SOUND_DOWN", function(data){ 
     console.log("SOUND_DOWN"); 
     client.emit("SOUND_DOWN"); 
    }); 
}); 
server.listen(3000); 

답변

0

을 고정! :)

최종 테스트를 수행하기 전에 여러 가지 작업을 수행했기 때문에 문제점을 정확히 파악할 수 없습니다.

먼저 socket.io (서버로 작동하도록 수정 한 이전 프로젝트에서 사용했던 것)를 업데이트했습니다.

두 번째로 client.emit... 대신 io.emit("SOUND_UP")을 사용하도록 서버를 변경했습니다.