##前提・実現したいこと
C#超初心者です。
WindowsFormでWebsocket通信を行うアプリ(サーバーサイド)を作ろうとしています。クライアントとの通信状態をテキストボックスに表示させる処理を実装したく下記のようなコードを書いたのですが、エラーが出てしまいます。
インスタンスの呼び出し方法に誤りがあると思われるのですが、エラーの原因と対策を教えて頂けないでしょうか。
未熟すぎる質問で恐縮ですが、どなたかご教授いただければ幸いです。よろしくお願いいたします。
##発生している問題・エラーメッセージ
System.NullReferenceException: 'オブジェクト参照がオブジェクト インスタンスに設定されていません。'
sample_websocketGUI.Form1.hoge.get が null を返しました。
##該当のソースコード(Form1.cs)
C#
1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10using WebSocketSharp; 11using WebSocketSharp.Net; 12using WebSocketSharp.Server; 13 14namespace sample_websocketGUI 15{ 16 public partial class Form1 : Form 17 { 18 19 //Hogeインスタンス保持用のプロパティ 20 public Hoge hoge { get; set;} 21 22 public Form1() 23 { 24 InitializeComponent(); 25 26 WebSocketServer server = new WebSocketServer(8080); //サーバの設立 27 server.AddWebSocketService<Hoge>("/", (Hoge hoge) => { this.hoge = hoge; }); //サーバの設定 28 29 server.Start(); 30 31 timer1.Enabled = true; //タイマを有効化 32 } 33 34 35 //テキストボックスに通信状態を表示、一定時間毎に更新するメソッド 36 private void timer1_Tick(object sender, EventArgs e) 37 { 38 textBox1.Text = hoge.getState().ToString(); 39 } 40 41 } 42 43 public class Hoge : WebSocketBehavior 44 { 45 46 //通信状態を取得するメソッド 47 public WebSocketState getState() 48 { 49 return ConnectionState; 50 } 51 52 } 53 54 55} 56
##補足情報(FW/ツールのバージョンなど)
以下のツール、ライブラリを使用
・WindowsForms (Windows 10 Pro)
・Websocket-sharp
https://github.com/sta/websocket-sharp
・テスト(クライアント側)
C:\Users*** >wscat -c ws://localhost:8080
回答4件
あなたの回答
tips
プレビュー