How to use pushedMessage method in wpt

Best JavaScript code snippet using wpt

index.js

Source:index.js Github

copy

Full Screen

1import { useEffect, useState } from "react";2import "./style.css";3import moment from "moment";4import SocketService from "../../library/socket";5import {6 setThreadListing,7 setSingleThread,8 setSingleMessage,9} from "../../library/redux/actions";10import { useDispatch, useSelector } from "react-redux";11import "react-toastify/dist/ReactToastify.css";12// import { toast } from "react-toastify";13// import Back from "../../components/icons/back";14// import Cross from "../../components/icons/cross";15const Header = (props) => {16 const {17 threadsList,18 threadListingType,19 handleBack,20 pageType,21 thread_id,22 setredirect,23 toast,24 actionBar,25 } = props;26 const [threadList, setthreadList] = useState();27 const { chattingWith } = useSelector((state) => state.global);28 let socket,29 fetchLiveChatMessagesEventSub,30 fetchSMSMessagesEventSub,31 isThreadUpdatedEventSub,32 updatedThreadCrmEventEventSub,33 isAliveChatUpdatedEventSub,34 tempMessageId = "";35 const dispatch = useDispatch();36 // console.log(pageType, "pageType");37 useEffect(() => {38 setthreadList(threadsList);39 // eslint-disable-next-line40 socket = SocketService.getInstance();41 socketEventSub();42 return () => {43 fetchLiveChatMessagesEventSub?.unsubscribe();44 fetchSMSMessagesEventSub?.unsubscribe();45 isThreadUpdatedEventSub?.unsubscribe();46 updatedThreadCrmEventEventSub?.unsubscribe();47 isAliveChatUpdatedEventSub.unsubscribe();48 };49 // eslint-disable-next-line50 }, [threadList, thread_id]);51 const socketEventSub = () => {52 fetchLiveChatMessagesEventSub = socket53 ?.fetchLiveChatMessages()54 .subscribe((pushedmessage) => {55 if (parseInt(pageType) === 1) {56 if (parseInt(threadListingType) === 2) {57 let isThreadExist =58 threadList &&59 threadList?.length > 0 &&60 threadList?.find(61 (item) => item.thread_id === pushedmessage.thread_id62 );63 if (64 (!isThreadExist || isThreadExist === {}) &&65 pushedmessage?.created_by === undefined &&66 pushedmessage?.user_id === undefined67 ) {68 // console.log("creating new thread, live chat");69 const createdAt =70 pushedmessage?.newThread?.lastmessage_at ||71 pushedmessage?.newThread?.updated_at ||72 pushedmessage?.newThread?.created_at ||73 moment().valueOf();74 let newThread = {75 phone_mobile: pushedmessage?.newThread?.phone_mobile || "",76 thread_type: pushedmessage?.newThread?.thread_type,77 thread_id: pushedmessage?.newThread?.thread_id,78 org_name: pushedmessage?.newThread?.org_name,79 crm_id: pushedmessage?.newThread?.crm_id,80 alivesecure_key: pushedmessage?.newThread?.alivesecure_key,81 aliveOpentokSession:82 pushedmessage?.newThread?.aliveOpentokSession || "",83 status: pushedmessage?.newThread?.thread_status,84 status_timestamp: pushedmessage?.newThread?.updated_at,85 timestamp: pushedmessage?.newThread?.created_at,86 created_by: pushedmessage?.created_by,87 assignedTo: pushedmessage?.newThread?.assignedTo || "0",88 phone_number: pushedmessage?.newThread?.phone_mobile || "",89 smsblocked: pushedmessage?.newThread?.user_blocked90 ? pushedmessage?.newThread?.user_blocked91 : false,92 platform: pushedmessage?.newThread?.platform || "",93 sms_platform: pushedmessage?.newThread?.platform || "",94 alivesms_phone_number: "",95 channel_id: pushedmessage?.newThread?.channel_id,96 crmData: pushedmessage?.newThread?.crmData || {},97 campaign_pending:98 pushedmessage?.newThread?.campaign_pending || "",99 lastmessage_at: pushedmessage?.newThread?.lastmessage_at,100 history_thread_timestamp: moment101 .unix(createdAt / 1000)102 .format("MM/DD/YY"),103 last_active_time: moment.unix(createdAt / 1000).fromNow(),104 };105 if (threadList?.length > 0) {106 setthreadList((state) => [...state, newThread]);107 } else {108 setthreadList([newThread]);109 }110 dispatch(setSingleThread(newThread));111 }112 }113 } else {114 if (115 pushedmessage?.newThread?.thread_id === thread_id &&116 tempMessageId !== pushedmessage.message_id117 ) {118 // console.log("Message", tempMessageId);119 tempMessageId = pushedmessage.message_id;120 dispatch(121 setSingleMessage({122 message_content: pushedmessage.message_content || "",123 created_at: pushedmessage.created_at,124 created_by: pushedmessage.created_by,125 From: pushedmessage.From,126 direction: pushedmessage.direction,127 media_url: pushedmessage.media_url || [],128 })129 );130 }131 }132 });133 fetchSMSMessagesEventSub = socket134 ?.fetchSMSMessages()135 .subscribe((pushedmessage) => {136 // console.log("pushedmessage", pushedmessage);137 if (parseInt(pageType) === 1) {138 if (parseInt(threadListingType) === 2) {139 let isThreadExist =140 threadList &&141 threadList?.length > 0 &&142 threadList?.find(143 (item) => item.thread_id === pushedmessage.thread_id144 );145 // console.log(146 // "creating new thread,found existing thread",147 // isThreadExist148 // );149 if (!isThreadExist || isThreadExist === {}) {150 // console.log("creating new thread,SMS chat");151 const createdAt =152 pushedmessage?.newThread?.lastmessage_at ||153 pushedmessage?.newThread?.updated_at ||154 pushedmessage?.newThread?.created_at ||155 moment().valueOf();156 let newThread = {157 phone_mobile: pushedmessage?.newThread?.phone_mobile,158 thread_type: pushedmessage?.newThread?.thread_type,159 thread_id: pushedmessage?.newThread?.thread_id,160 org_name: pushedmessage?.newThread?.org_name,161 crm_id: pushedmessage?.newThread?.crm_id,162 alivesecure_key: pushedmessage?.newThread?.alivesecure_key,163 aliveOpentokSession:164 pushedmessage?.newThread?.aliveOpentokSession || "",165 status: pushedmessage?.newThread?.thread_status,166 status_timestamp: pushedmessage?.newThread?.updated_at,167 timestamp: pushedmessage?.newThread?.created_at,168 created_by: pushedmessage?.created_by,169 assignedTo: pushedmessage?.assignedTo,170 phone_number: pushedmessage?.newThread?.phone_mobile || "",171 smsblocked: pushedmessage?.newThread?.user_blocked172 ? pushedmessage?.newThread?.user_blocked173 : false,174 platform: pushedmessage?.newThread?.platform || "",175 sms_platform: pushedmessage?.newThread?.platform || "",176 alivesms_phone_number: "",177 channel_id: pushedmessage?.newThread?.channel_id,178 crmData: pushedmessage?.newThread?.crmData || {},179 campaign_pending:180 pushedmessage?.newThread?.campaign_pending || "",181 lastmessage_at: pushedmessage?.newThread?.lastmessage_at,182 history_thread_timestamp: moment183 .unix(createdAt / 1000)184 .format("MM/DD/YY"),185 last_active_time: moment.unix(createdAt / 1000).fromNow(),186 };187 if (threadList?.length > 0) {188 setthreadList((state) => [...state, newThread]);189 } else {190 setthreadList([newThread]);191 }192 dispatch(setSingleThread(newThread));193 }194 }195 } else {196 // console.log(197 // pushedmessage?.newThread?.thread_id,198 // "working in else condition...",199 // thread_id200 // );201 if (202 pushedmessage?.newThread?.thread_id === thread_id &&203 tempMessageId !== pushedmessage.message_id204 ) {205 // console.log(pushedmessage.message_id, "Message", tempMessageId);206 tempMessageId = pushedmessage.message_id;207 dispatch(208 setSingleMessage({209 message_content: pushedmessage.message_content || "",210 created_at: pushedmessage.created_at,211 created_by: pushedmessage.created_by,212 From: pushedmessage.From,213 direction: pushedmessage.direction,214 media_url: pushedmessage.media_url || [],215 })216 );217 }218 }219 });220 isThreadUpdatedEventSub = socket221 ?.isThreadUpdated()222 .subscribe((updatedThread) => {223 if (224 parseInt(threadListingType) === 2 ||225 threadListingType === undefined226 ) {227 if (updatedThread && updatedThread?.threadStatus === "deleted") {228 let updatedThreads = threadList?.filter(229 (thread) => thread.thread_id !== updatedThread.threadId230 );231 if (!parseInt(pageType) === 1 || pageType === undefined) {232 toast("Chat is Deleted by User!");233 setTimeout(() => {234 setredirect("Home");235 }, 3000);236 }237 dispatch(setThreadListing(updatedThreads));238 }239 }240 });241 updatedThreadCrmEventEventSub = socket242 ?.updatedThreadCrmEvent()243 .subscribe((updatedThreadCrm) => {244 if (parseInt(threadListingType) === 2) {245 let updateThreadsArray = threadList;246 if (updateThreadsArray && updateThreadsArray.length) {247 let threadIndex = updateThreadsArray.findIndex(248 (el) => el.thread_id === updatedThreadCrm.threadId249 );250 if (parseInt(threadIndex) > -1) {251 if (252 updateThreadsArray[parseInt(threadIndex)] &&253 updateThreadsArray[parseInt(threadIndex)].crmData254 ) {255 updateThreadsArray[parseInt(threadIndex)].crmData =256 updatedThreadCrm?.crmData;257 setthreadList(updateThreadsArray);258 dispatch(setThreadListing(updateThreadsArray));259 }260 }261 }262 }263 });264 isAliveChatUpdatedEventSub = socket265 .isAliveChatUpdated()266 .subscribe((updateThreadStatus) => {267 if (updateThreadStatus?.thread_status === "closed") {268 if (!parseInt(pageType) === 1 || pageType === undefined) {269 console.log("in state close check....");270 toast("Chat is closed by User!");271 setTimeout(() => {272 setredirect("Home");273 }, 3000);274 } else {275 let updatedThreads = threadList?.filter(276 (thread) => thread.thread_id !== updateThreadStatus.thread_id277 );278 dispatch(setThreadListing(updatedThreads));279 }280 }281 });282 };283 return (284 <>285 {parseInt(pageType) === 1 ? (286 <header id="insta-header" className="bg-main fixed flex flex-row w-full justify-center items-center p-10">287 <section288 id="threads-header"289 className="h-full flex flex-col items-center justify-center"290 >291 <div className="logo-img h-full flex flex-col items-center justify-center">292 <svg293 xmlns="http://www.w3.org/2000/svg"294 width="98.809"295 className="mb-10"296 height="34.544"297 viewBox="0 0 243.809 86.544"298 >299 <path300 d="M51.456,40.991C43.1,41.307,38.492,45.46,37.9,45.985V16.4a27.171,27.171,0,0,0-7.474-1.681c-4.376-.147-7.76.963-9.181,3.077A8.158,8.158,0,0,0,20,22.643V99.682H38.012V70.156c0-9.761,5.2-12.422,10.58-12.422,4.927,0,10.114,1.576,10.114,10.845v31.1H76.719v-34.8C76.719,46.494,64.352,40.5,51.456,40.991Z"301 transform="translate(-20 -14.706)"302 fill="#fff"303 />304 <path305 d="M45.948,21.349a11.763,11.763,0,0,0-6.822,1.787q-2.566,1.791-2.573,6.162V78.4H54.565V23.022c-.441-.143-1.492-.467-3.127-.95A19.55,19.55,0,0,0,45.948,21.349Z"306 transform="translate(33.029 6.576)"307 fill="#fff"308 />309 <path310 d="M78.195,36.565c-8.424-.307-15.061,4.809-16.407,6.154V17.783c-.446-.143-1.475-.467-3.094-.946a19.007,19.007,0,0,0-5.456-.727,11.892,11.892,0,0,0-6.864,1.778q-2.6,1.8-2.594,6.162V64.081c0,25.2,15.541,32.67,31.1,32.67,12.934,0,30.875-8.336,30.875-30.1C105.758,53.114,97.309,37.258,78.195,36.565ZM74.491,80.2c-9.353,0-12.813-7.293-12.813-13.6,0-4.931,3.182-13.586,12.813-13.586,9.488,0,12.808,8.1,12.808,13.586C87.3,73.607,83.029,80.2,74.491,80.2Z"311 transform="translate(56.182 -10.208)"312 fill="#fff"313 />314 <path315 d="M114.638,22.072a19.48,19.48,0,0,0-5.477-.723,11.736,11.736,0,0,0-6.822,1.787c-1.719,1.194-2.568,3.245-2.568,6.162V51.775q0,11.646-10.513,11.64-10.53,0-10.522-11.64V23.022c-.454-.143-1.5-.467-3.136-.95a19.492,19.492,0,0,0-5.473-.723,11.8,11.8,0,0,0-6.835,1.787q-2.566,1.791-2.573,6.162V55.129c0,6.545,2.459,24.839,28.538,24.839,25.583,0,28.521-18.294,28.521-24.839V23.022C117.328,22.879,116.285,22.555,114.638,22.072Z"316 transform="translate(110.444 6.576)"317 fill="#fff"318 />319 <path320 d="M36.512,24.128A9.176,9.176,0,1,1,45.688,33.3,9.181,9.181,0,0,1,36.512,24.128Z"321 transform="translate(32.898 -13.934)"322 fill="#fff"323 />324 <path325 d="M60.718,24.128A9.176,9.176,0,1,1,69.894,33.3,9.181,9.181,0,0,1,60.718,24.128Z"326 transform="translate(110.444 -13.934)"327 fill="#fff"328 />329 <path330 d="M70,24.128A9.174,9.174,0,1,1,79.18,33.3,9.178,9.178,0,0,1,70,24.128Z"331 transform="translate(140.193 -13.934)"332 fill="#fff"333 />334 <g transform="translate(233.972 30.287)">335 <path336 d="M77.362,22.512h-1.7v-.6h4.124v.6h-1.7v5.036h-.719Z"337 transform="translate(-75.66 -21.911)"338 fill="#fff"339 />340 <path341 d="M76.882,21.911h.841l1.093,3.027.412,1.148h.034l.4-1.148,1.085-3.027h.841v5.637H80.9v-3.1c0-.5.05-1.169.092-1.665h-.034l-.454,1.253-1.085,2.947h-.4l-1.089-2.947-.45-1.253h-.034c.034.5.1,1.169.1,1.665v3.1h-.664Z"342 transform="translate(-71.745 -21.911)"343 fill="#fff"344 />345 </g>346 </svg>347 <svg348 xmlns="http://www.w3.org/2000/svg"349 width="52"350 height="22"351 viewBox="0 0 112 48"352 >353 <text354 transform="translate(56 38)"355 fill="#fff"356 fontSize="41"357 fontFamily="HibuCoText-Regular, Hibu Co Text, Open Sans"358 >359 <tspan x="-55" y="0">360 CHAT361 </tspan>362 </text>363 </svg>364 </div>365 </section>366 </header>367 ) : (368 <header id="insta-header" className="bg-main fixed flex flex-row w-full justify-center items-center p-10">369 <section370 id="chat-header"371 className="flex flex-row items-center w-full"372 >373 <button374 className="btn-col transparent white"375 onClick={handleBack}376 style={{ cursor: "pointer", padding: 10 }}377 >378 <svg379 xmlns="http://www.w3.org/2000/svg"380 width="10.5"381 height="18.366"382 viewBox="0 0 10.5 18.366"383 >384 <path385 d="M14.416,15.374l6.949-6.944a1.313,1.313,0,0,0-1.859-1.854l-7.873,7.868a1.31,1.31,0,0,0-.038,1.81L19.5,24.177a1.313,1.313,0,1,0,1.859-1.854Z"386 transform="translate(-11.251 -6.194)"387 fill="currentColor"388 />389 </svg>390 </button>391 <div className="profile-image small ml-auto flex flex-col justify-center items-center">392 <div className="image-container">393 <svg394 xmlns="http://www.w3.org/2000/svg"395 width="32"396 height="32"397 viewBox="0 0 45.004 45.005"398 >399 <g transform="translate(-162 -435)">400 <path401 d="M21.324,39.963,14.61,43.626a6.034,6.034,0,0,0-1.078.767,22.488,22.488,0,0,0,28.894.075,5.957,5.957,0,0,0-1.184-.793l-7.19-3.594a2.742,2.742,0,0,1-1.516-2.452V34.806a10.859,10.859,0,0,0,.68-.875,16.544,16.544,0,0,0,2.235-4.5,2.258,2.258,0,0,0,1.6-2.148V24.268A2.248,2.248,0,0,0,36.3,22.6V18.247s.894-6.774-8.279-6.774-8.279,6.774-8.279,6.774V22.6a2.245,2.245,0,0,0-.752,1.669v3.011a2.257,2.257,0,0,0,1.041,1.894,14.942,14.942,0,0,0,2.722,5.632v2.751A2.745,2.745,0,0,1,21.324,39.963Z"402 transform="translate(156.481 430.321)"403 fill="#e7eced"404 />405 <g transform="translate(162 435)">406 <path407 d="M22.887,0a22.488,22.488,0,0,0-14.864,39.7,5.979,5.979,0,0,1,1.067-.759L15.8,35.285a2.743,2.743,0,0,0,1.429-2.407V30.126a14.928,14.928,0,0,1-2.722-5.632A2.258,2.258,0,0,1,13.47,22.6V19.588a2.248,2.248,0,0,1,.752-1.669V13.567S13.328,6.793,22.5,6.793s8.279,6.774,8.279,6.774V17.92a2.245,2.245,0,0,1,.752,1.669V22.6a2.258,2.258,0,0,1-1.6,2.148,16.544,16.544,0,0,1-2.235,4.5,10.86,10.86,0,0,1-.68.875v2.821A2.741,2.741,0,0,0,28.533,35.4l7.19,3.594a5.987,5.987,0,0,1,1.18.791A22.5,22.5,0,0,0,22.887,0Z"408 transform="translate(0 0)"409 fill="#556080"410 />411 </g>412 </g>413 </svg>414 </div>415 <p className="font-14 tracking-05 font-normal white m-0 mt-5">416 {chattingWith}417 </p>418 </div>419 <button420 className="btn-col ml-auto transparent white"421 onClick={actionBar}422 style={{ cursor: "pointer" }}423 >424 <svg425 xmlns="http://www.w3.org/2000/svg"426 width="28"427 height="6"428 viewBox="0 0 28 6"429 >430 <g transform="translate(-325 -65)">431 <circle432 cx="3"433 cy="3"434 r="3"435 transform="translate(325 65)"436 fill="currentColor"437 />438 <circle439 cx="3"440 cy="3"441 r="3"442 transform="translate(336 65)"443 fill="currentColor"444 />445 <circle446 cx="3"447 cy="3"448 r="3"449 transform="translate(347 65)"450 fill="currentColor"451 />452 </g>453 </svg>454 </button>455 </section>456 </header>457 )}458 {/* <header459 className="flex-row chat monitor flex-center-items padding-left-10 padding-right-10 only-border-bottom border-width-1 border-style-solid border-grey-200"460 style={{ backgroundColor: `${bgColor}` }}461 >462 {parseInt(pageType) === 1 && (463 <button464 type="button"465 className="btn-action transparent white"466 onClick={handleBack}467 >468 <Back />469 </button>470 )}471 <div className="branding h-35-px" style={{ margin: "auto" }}>472 {/* eslint-disable-next-line */}473 {/* <img474 className="full-height"475 src={logoURL}476 alt="alive5 logo image"477 srcSet=""478 />479 </div>480 {parseInt(pageType) !== 0 && (481 <>482 {parseInt(pageType) === 1 && thread_type === "livechat" ? (483 <button484 id="close"485 className="btn-action transparent white"486 type="button"487 data-toggle="modal"488 data-target="#exampleModal "489 >490 <Cross />491 </button>492 ) : (493 <div></div>494 )}495 </>496 )}497 498 </header> */}499 {/* <ToastContainer /> */}500 </>501 );502};...

Full Screen

Full Screen

common.js

Source:common.js Github

copy

Full Screen

1var ws;2var currentPage;3var timeLineCount;4var userInformation;5/*6 * アプリ起動時に一度だけ必要な処理7 */8$(document).on(9 'pagecreate',10 function(){11 //セッションストレージのチェック12 if (typeof sessionStorage === 'undefined') {13 window.alert("このブラウザはWeb Storage機能が実装されていません。対応したブラウザで使用してください");14 }15 timeLineCount = JSON.parse(getStorage('timeLineCount'));16 console.log('【debug】METHOD;common-redy;timeLinecount='+timeLineCount+' ,unReadedMessageNum='+timeLineCount.unReadedMessageNum);17 checkTimeLineCount();18});19//Ajaxのページ遷移を無効に20$(document).bind("mobileinit", function(){21 $.mobile.ajaxFormsEnabled = false;22});23/*24 * 各ページごとに必須な処理25 */26function eachPageDoFirst(rootDir){27 console.log('【debug】METHOD;eachPageDoFirst;currenPage='+currentPage);28 //ログインチェック29 loginCheck(rootDir);30 checkTimeLineCount();31 //timeLine用のファンクション32 if(!ws){33 socketOpen();34 }35 //未読件数の挿入36 insertunReadedMessageNum();37 //管理者ページの表示非表示38 if(!userInformation.admin){39 $('.admin').css('display','none');40 }41}42/*43 * timeLine用のファンクション44 * ソケット通信でメッセージを送受信する。45 * currentPageがtimeLineの場合は画面の書き換え処理も行う。46 */47function socketOpen(){48 //現時点でのデータを取得49 getTimeLineData();50 // WebSocket の初期化51 ws = new WebSocket('ws://'+ config.apiHost + '/'+config.webSocketUrl+'/timeLine');52 // イベントハンドラの設定53 ws.onopen = onOpen;54 ws.onmessage = onMessage;55 ws.onclose = onClose;56 ws.onerror = onError;57 // Windowが閉じられた(例:ブラウザを閉じた)時のイベントを設定58 $(window).unload(function() {59 ws.onclose(); // WebSocket close60 });61}62//接続イベント63function onOpen(event) {64console.log('socket open!');65timeLineCount = JSON.parse(getStorage('timeLineCount'));66insertunReadedMessageNum();67//socketが途切れないように定期的にkeep-aliveメッセージを送信68//setTimeout(ws.send("ALIVE"), 5500);69}70//メッセージ受信イベント71//storageのデータに追加分のメッセージおよびスレッドデータを追加する。72//timeLineページを開いている場合は画面の描写も行う。73function onMessage(event) {74 console.log('【debug】socket onMessage'+event.data)75 var isNewThread = false;76 if (event && event.data) {77 var pushedMessage = JSON.parse(event.data);78 var pushedThreadId = pushedMessage.threadId;79 var pushedMessageReaction;80 var pushedThreadColor =pushedMessage.colorCode;;81 timeLineCount = JSON.parse(getStorage('timeLineCount'));82 //thread追加の場合の処理83 if(!pushedMessage.reactions){84 isNewThread=true;85 timeLineData.threads.unshift(pushedMessage);86 }else{87 //メッセージ追加の場合の処理88 pushedMessageReaction= pushedMessage.reactions[0];89 for (var i=0;i<timeLineData.threads.length;i++){90 tmpThread = timeLineData.threads[i];91 if(tmpThread.threadId==pushedThreadId){92 if(tmpThread.reactions == null){93 tmpThread.reactions=[pushedMessageReaction];94 }else{95 tmpThread.reactions.unshift(pushedMessageReaction);96 }97 tmpThread.colorCode=pushedMessage.colorCode;98 }99 }100 }101 saveStorage('timeLineData', JSON.stringify(timeLineData));102 currentPage=getCurrentPage();103 //表示ページがタイムラインの場合は画面に描写する。104 if(currentPage=='timeLine'){105 if(isNewThread==true){106 var insertHTML=makeHtmlThread(pushedMessage)107 setColorCode(pushedMessage.threadId,pushedMessage.colorCode);108 //Htmlの挿入109 $("#timeLine_ResultArea").prepend(insertHTML);110 //リアクション追加でリアクションが開かれている場合111 }else if(isNewThread==false && $('#'+pushedThreadId).attr('messagestatus') == 'open'){112 var insertHTML=makeHtmlReaction(pushedMessage.reactions[0]);113 $('#otherReaction-'+pushedThreadId).prepend(insertHTML);114 setColorCode(pushedThreadId,pushedThreadColor);115 //リアクション追加でリアクションが開かれていない場合116 }else if(isNewThread==false && $('#'+pushedThreadId).attr('messagestatus') == 'close'){117 setColorCode(pushedThreadId,pushedThreadColor);118 }119 }120 //スレッドが追加された場合は未読件数を表示する(タイムライン画面の場合は行わない)121 if(currentPage!='timeLine' && isNewThread==true){122 timeLineCount.unReadedMessageNum++;123 saveStorage('timeLineCount', JSON.stringify(timeLineCount));124 insertunReadedMessageNum();125 }126 }127}128//エラーイベント129function onError(event) {130 console.log('socketErr:'+event);131}132//切断イベント133function onClose(event) {134 console.log("切断しました。10秒後に再接続します。(" + event.code + ")" +'接続試行回数' + timeLineCount.connectionTryCnt +'<br>');135 ws = null;136 timeLineCount.connectionTryCnt ++;137 setTimeout('socketOpen()', 10000);138}139//メッセージ送信イベント140function sendMessageToSocket(Message){141 ws.send(Message); // WebSocketを使いサーバにメッセージを送信142}143/*144* 初回データ取得時のメソッド145* タイムラインのデータ全てを取得する146*/147function getTimeLineData(){148 console.log('【debug】GET;request;common-getTimeLineData;-');149$150 .ajax({151 type : 'GET',152 url : 'http://' + config.apiHost + '/'+ config.apiVersion +'/page/timeLine/',153 dataType : 'json',154 success : function(data) {155 timeLineData = data;156 //console.log('【debug】GET;response;getTimeLineData'+JSON.stringify(data));157 saveStorage('timeLineData', JSON158 .stringify(timeLineData));159 //未読件数作成処理160 timeLineCount = JSON.parse(getStorage('timeLineCount'));161 timeLineCount.unReadedMessageNum = data.threads.length - timeLineCount.watchedThreadCount;162 saveStorage('timeLineCount', JSON163 .stringify(timeLineCount));164 insertunReadedMessageNum();165 },166 error : function(XMLHttpRequest, textStatus, errorThrown) {167 console.log("リクエスト時になんらかのエラーが発生しました:" + textStatus + ":\n"168 + errorThrown + ":\n" + XMLHttpRequest);169 }170 });171}172function insertunReadedMessageNum(){173 timeLineCount = JSON.parse(getStorage('timeLineCount'));174 console.log('【debug】METHOD;insertunReadedMessageNum;timeLineCount:'+timeLineCount);175 var messege = '';176 if(timeLineCount.unReadedMessageNum != 0 ){177 messege = '未読'+timeLineCount.unReadedMessageNum;178 }179 $('.timeLineFooter').html(messege);180}181function checkTimeLineCount(){182 timeLineCount = JSON.parse(getStorage('timeLineCount'));183 if(timeLineCount == null || timeLineCount == undefined){184 timeLineCount ={'unReadedMessageNum':0,185 'watchedThreadCount':0,186 'connectionTryCnt':0};187 saveStorage('timeLineCount', JSON.stringify(timeLineCount));188 }189}190function loginCheck(rootDir){191 var loginPageURL=rootDir+'/facebookLogin.html';192 if(config.isDevelop){193 // テスト用194 userInformation={'userId':'125216844506488','userName':'kiyota','admin':true,'team':'C'};195 saveStorage('userInformation', JSON.stringify(userInformation));196 }else{197 userInformation =JSON.parse(getStorage('userInformation'));198 if(!userInformation){199 location.href=loginPageURL;200 };201 }...

Full Screen

Full Screen

message-unpack-stream.js

Source:message-unpack-stream.js Github

copy

Full Screen

1const { assert } = require("chai");2const bufferpack = require("bufferpack");3const MessageUnpackStream = require("../message-unpack-stream").MessageUnpackStream;4describe("message-unpack-stream", () => {5 describe("_transform", () => {6 const createMessageToSend = (message) => {7 const header = bufferpack.pack(">i", [message.length]);8 const binaryMsg = Buffer.from(message);9 const dataToSend = Buffer.concat([header, binaryMsg]);10 return {11 binaryMsg,12 dataToSend13 };14 };15 it("parses correctly one message", (mochaDone) => {16 const { dataToSend, binaryMsg } = createMessageToSend("testMessage");17 const msgUnpackStreamInstance = new MessageUnpackStream();18 let pushedMessage = null;19 msgUnpackStreamInstance.push = (data, encoding) => {20 pushedMessage = data;21 };22 msgUnpackStreamInstance._transform(dataToSend, null, () => {23 assert.deepEqual(pushedMessage, binaryMsg);24 mochaDone();25 });26 });27 it("does not parse anything when only partial message is sent", (mochaDone) => {28 const { dataToSend, binaryMsg } = createMessageToSend("testMessage");29 const msgUnpackStreamInstance = new MessageUnpackStream();30 let pushedMessage = null;31 msgUnpackStreamInstance.push = (data, encoding) => {32 assert.fail("Push should not be called with partial message");33 pushedMessage = data;34 };35 msgUnpackStreamInstance._transform(dataToSend.slice(0, 6), null, () => {36 assert.deepEqual(pushedMessage, null);37 mochaDone();38 });39 });40 describe("parses correctly one message passed on two calls, when the first one", () => {41 const validateMessage = (endSplitIndex, mochaDone) => {42 const { dataToSend, binaryMsg } = createMessageToSend("testMessage");43 const msgUnpackStreamInstance = new MessageUnpackStream();44 let pushedMessage = null;45 msgUnpackStreamInstance.push = (data, encoding) => {46 pushedMessage = data;47 };48 let doneCallbackCounter = 0;49 const doneCallback = () => {50 doneCallbackCounter++;51 if (doneCallbackCounter === 2) {52 assert.deepEqual(pushedMessage, binaryMsg);53 mochaDone();54 }55 };56 const firstMessage = dataToSend.slice(0, endSplitIndex);57 msgUnpackStreamInstance._transform(firstMessage, null, doneCallback);58 msgUnpackStreamInstance._transform(dataToSend.slice(firstMessage.length), null, doneCallback);59 };60 it("does not contain full header", (mochaDone) => {61 validateMessage(1, mochaDone);62 });63 it("contains only header", (mochaDone) => {64 validateMessage(4, mochaDone);65 });66 it("contains header and part of the message", (mochaDone) => {67 validateMessage(7, mochaDone);68 });69 });70 it("parses correctly two messages passed on one call", (mochaDone) => {71 const { dataToSend: firstDataToSend, binaryMsg: firstBinaryMsg } = createMessageToSend("testMessage");72 const { dataToSend: secondDataToSend, binaryMsg: secondBinaryMsg } = createMessageToSend("secondTestMessage");73 const msgUnpackStreamInstance = new MessageUnpackStream();74 let pushedMessages = [];75 msgUnpackStreamInstance.push = (data, encoding) => {76 pushedMessages.push(data)77 };78 const doneCallback = () => {79 assert.deepEqual(pushedMessages, [firstBinaryMsg, secondBinaryMsg]);80 mochaDone();81 };82 const dataToSend = Buffer.concat([firstDataToSend, secondDataToSend]);83 msgUnpackStreamInstance._transform(dataToSend, null, doneCallback);84 });85 describe("parses correctly two messages passed on two calls, when", () => {86 const validateMessage = (endSplitIndex, mochaDone) => {87 // NOTE: Do NOT change the messages here as it will result in incorrect tests below88 const { dataToSend: firstDataToSend, binaryMsg: firstBinaryMsg } = createMessageToSend("abc");89 const { dataToSend: secondDataToSend, binaryMsg: secondBinaryMsg } = createMessageToSend("def");90 const msgUnpackStreamInstance = new MessageUnpackStream();91 let pushedMessages = [];92 msgUnpackStreamInstance.push = (data, encoding) => {93 pushedMessages.push(data)94 };95 let doneCallbackCounter = 0;96 const doneCallback = () => {97 doneCallbackCounter++;98 if (doneCallbackCounter === 2) {99 assert.deepEqual(pushedMessages, [firstBinaryMsg, secondBinaryMsg]);100 mochaDone();101 }102 };103 const dataToSend = Buffer.concat([firstDataToSend, secondDataToSend]);104 const firstMessage = dataToSend.slice(0, endSplitIndex);105 msgUnpackStreamInstance._transform(firstMessage, null, doneCallback);106 msgUnpackStreamInstance._transform(dataToSend.slice(firstMessage.length), null, doneCallback);107 };108 it("first call contains part of the header of the first message", (mochaDone) => {109 validateMessage(1, mochaDone);110 });111 it("first call contains only the header of the first message", (mochaDone) => {112 validateMessage(4, mochaDone);113 });114 it("first call contains the header and part of the first message", (mochaDone) => {115 validateMessage(6, mochaDone);116 });117 it("first call contains the first message and part of the header of the second message", (mochaDone) => {118 validateMessage(9, mochaDone);119 });120 it("first call contains the first message and the header of the second message", (mochaDone) => {121 validateMessage(11, mochaDone);122 });123 it("first call contains the first message, the header of the second message and part of the second message", (mochaDone) => {124 validateMessage(13, mochaDone);125 });126 });127 });...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1var wpt = require('webpagetest');2var wpt = new WebPageTest('www.webpagetest.org', 'A.12345678901234567890123456789012');3 if (err) {4 console.log(err);5 } else {6 wpt.getTestStatus(data.data.testId, function(err, data) {7 if (err) {8 console.log(err);9 } else {10 console.log(data);11 }12 });13 }14});15var wpt = require('webpagetest');16var wpt = new WebPageTest('www.webpagetest.org', 'A.12345678901234567890123456789012');17 if (err) {18 console.log(err);19 } else {20 wpt.getTestStatus(data.data.testId).then(function(data) {21 console.log(data);22 }).catch(function(err) {23 console.log(err);24 });25 }26});

Full Screen

Using AI Code Generation

copy

Full Screen

1var wpt = require('webpagetest');2var wpt = new WebPageTest('www.webpagetest.org');3 if (err) return console.error(err);4 wpt.getTestStatus(data.data.testId, function(err, data) {5 if (err) return console.error(err);6 console.log(data);7 });8});9 at errnoException (net.js:905:11)10 at Object.afterConnect [as oncomplete] (net.js:896:19)

Full Screen

Using AI Code Generation

copy

Full Screen

1var wpt = require('webpagetest');2var wpt = new WebPageTest('www.webpagetest.org');3wpt.pushedMessage('testId', 'message', function(err, data) {4 if (err) {5 console.log(err);6 } else {7 console.log(data);8 }9});10var wpt = require('webpagetest');11var wpt = new WebPageTest('www.webpagetest.org');12wpt.getLocations(function(err, data) {13 if (err) {14 console.log(err);15 } else {16 console.log(data);17 }18});19var wpt = require('webpagetest');20var wpt = new WebPageTest('www.webpagetest.org');21wpt.getTesters(function(err, data) {22 if (err) {23 console.log(err);24 } else {25 console.log(data);26 }27});28var wpt = require('webpagetest');29var wpt = new WebPageTest('www.webpagetest.org');30wpt.getTesters(function(err, data) {31 if (err) {32 console.log(err);33 } else {34 console.log(data);35 }36});37var wpt = require('webpagetest');38var wpt = new WebPageTest('www.webpagetest.org');39wpt.getTesters(function(err, data) {40 if (err) {41 console.log(err);42 } else {43 console.log(data);44 }45});46var wpt = require('webpagetest');47var wpt = new WebPageTest('www.webpagetest.org');48wpt.getTesters(function(err, data) {49 if (err) {50 console.log(err);51 } else {52 console.log(data);53 }54});

Full Screen

Using AI Code Generation

copy

Full Screen

1var wpt = require('wpt');2wpt.pushedMessage('test', 'test message', function(err, data) {3 console.log('err: ' + err);4 console.log('data: ' + data);5});6var wpt = require('wpt');7wpt.pushedMessage('test', 'test message', function(err, data) {8 console.log('err: ' + err);9 console.log('data: ' + data);10});11var wpt = require('wpt');12wpt.pushedMessage('test', 'test message', function(err, data) {13 console.log('err: ' + err);14 console.log('data: ' + data);15});16var wpt = require('wpt');17wpt.pushedMessage('test', 'test message', function(err, data) {18 console.log('err: ' + err);19 console.log('data: ' + data);20});21var wpt = require('wpt');22wpt.pushedMessage('test', 'test message', function(err, data) {23 console.log('err: ' + err);24 console.log('data: ' + data);25});26var wpt = require('wpt');27wpt.pushedMessage('test', 'test message', function(err, data) {28 console.log('err: ' + err);29 console.log('data: ' + data);30});31var wpt = require('wpt');32wpt.pushedMessage('test', 'test message', function(err, data) {33 console.log('err: ' + err);34 console.log('data: ' + data);35});36var wpt = require('wpt');37wpt.pushedMessage('test', 'test message', function(err, data) {38 console.log('err: ' + err);39 console.log('data: ' + data);40});41var wpt = require('wpt');42wpt.pushedMessage('test', 'test message', function(err, data)

Full Screen

Using AI Code Generation

copy

Full Screen

1var wptools = require('wptools');2var wp = new wptools('Albert Einstein');3wp.pushedMessage(function(err, response){4 console.log(response);5});6{ pusher: 'Wikipedia',7 timestamp: '2016-05-09T12:34:31Z' }

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run wpt automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful